Hibernate中日期类型的插入问题

baggio785 2006-05-16 10:28:05
环境:JDK1.4.2,TOMCAT5.0.28,ORACLE9i,HIBERNATE3

表结构:
admin_id,admin_name,admin_password,admin_logondate

admin_id为主键,采用序列进行自增;admin_name,admin_password为varchar2,admin_logondate为date,默认值为sysdate,都不允许为空

对象关系映射文件

对ADMIN_LOGONDATE字段
<property name="adminLogondate" type="date">
<column name="ADMIN_LOGONDATE" length="7" not-null="true" />
</property>

在类文件中
Date logonDate = new Date();
System.out.println(logonDate.toString());
BlogSystemadmin blogSystemadmin = new BlogSystemadmin();
SystemAdmin systemAdmin = new SystemAdmin();
blogSystemadmin.setAdminName("lixiyao");
blogSystemadmin.setAdminPassword("password");
blogSystemadmin.setAdminLogondate(logonDate);
try {
systemAdmin.saveSystemadmin(blogSystemadmin);
} catch (Exception e) {
e.printStackTrace();
}

新增的记录ADMIN_LOGONDATE的值只是yyyy-mm-dd格式,我想要得到yyyy-mm-dd hh:mi:ss该如何做呢?

还有,既然ADMIN_LOGONDATE有默认值,如果把blogSystemadmin.setAdminLogondate(logonDate);这句去掉就会出错,org.hibernate.PropertyValueException: not-null property references a null or transient value: com.javablog.systemadmin.BlogSystemadmin.adminLogondate

既然not-null ,那就把对象关系映射文件中的ADMIN_LOGONDATE的not-null改成false,但是同样会出错:org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update。无法将 NULL 插入 ("JAVABLOG"."BLOG_SYSTEMADMIN"."ADMIN_LOGONDATE")

请大家指点一二
...全文
540 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baggio785 2006-05-19
  • 打赏
  • 举报
回复
帮帮忙啊~
lbh198408 2006-05-17
  • 打赏
  • 举报
回复
<property name="adminLogondate" type="timestamp">
<column name="ADMIN_LOGONDATE" length="7" not-null="true" />
</property>
baggio785 2006-05-17
  • 打赏
  • 举报
回复
to sole_lodestar,这个是MyEclipse自己加上去的
baggio785 2006-05-17
  • 打赏
  • 举报
回复
继续顶,希望得到更好的答案
sole_lodestar 2006-05-17
  • 打赏
  • 举报
回复
<column name="ADMIN_LOGONDATE" length="7" not-null="true" />

日期也要加length么?
tlowl 2006-05-17
  • 打赏
  • 举报
回复
我看得是孙卫琴的那本,数据库字段可以设为timestamp,JAVA类型可以设成java.util.Date或者java.sql.Timestamp

我不知道not-null和数据库是否有关系,这本书中用的数据库是mysql,字段并没有加not-null约束,但是每次保存持久化对象的时候对象中Timestamp属性的值是null,而数据库中自动存储了当前的系统时间
baggio785 2006-05-17
  • 打赏
  • 举报
回复
关于默认值的问题,有人能帮我解答一下么?
dekkerhyp411 2006-05-17
  • 打赏
  • 举报
回复
MARK一下。。
benq998 2006-05-16
  • 打赏
  • 举报
回复
BlogSystemadmin类里的adminLogondate字段加上默认值,不用数据库的默认值。
baggio785 2006-05-16
  • 打赏
  • 举报
回复
自己顶一下

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧