Hibernate映射文件中元素default属性的问题。

javaboy2006 2007-05-28 07:08:50
Oracle数据库表中字段定义为:taskStatus varchar2(2) default('01') not null

Hibernate映射文件中代码段为:
<property name="taskstatus" type="java.lang.String">
<column name="TASKSTATUS" length="2" not-null="true" default="01" />
</property>

我在column元素中只要加入了default属性启动tomcat就报异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: invalid mapping
org.hibernate.MappingException: invalid mapping

- Error parsing XML: XML InputStream(33) Attribute "default" must be declared for element type "column".

去掉该属性后tomcat启动就正常了。


请教一下各位数据库表中字段的default约束如何在Hibernate映射文件中定义?
...全文
1112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
javaboy2006 2007-06-02
  • 打赏
  • 举报
回复
不纠缠这个细节问题了,结帖。
steven_cheng 2007-05-31
  • 打赏
  • 举报
回复
怎么不行,我就这么用的。如果数据库字段设了insert="false",在插入的时候sql语句就忽略这个字段。当然这个property不能设置not-null="false"
steven_cheng 2007-05-30
  • 打赏
  • 举报
回复
<property ... insert="false" />
把property的insert属性设为false。
javaboy2006 2007-05-30
  • 打赏
  • 举报
回复
ls兄弟的方法还是不行哦。还是直接调用pojo属性的setter方法赋值算了。
javaboy2006 2007-05-29
  • 打赏
  • 举报
回复
在用myeclipse生成的hbm映射文件中确实没有自动产生<column>元素的default属性。

我现在是想在调用持久化层保存一个对象到数据库中时如果数据库中表的某个字段有default约束那么我不调用pojo该属性的setter方法赋值也可以将该属性的默认值自动添加到数据库中。
不知道上述功能该如何实现?
steven_cheng 2007-05-29
  • 打赏
  • 举报
回复
Hibernate映射不能定义default。至少查文档没有关于default值的定义。
个人感觉这样的处理是因为default值这样的东西写在映射文件里唯一的用处是在hbm2ddl,而且是在开发测试阶段,所以在映射里使用没有多大意义。而且,default值有些用到数据库定义的函数,在各个数据库里又是不同的,所以意义不大。

67,541

社区成员

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

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