[英]One-to-many relationship with Hibernate
我在Spring中使用Hibernate,并且Hibernate返回此错误:
Caused by: java.sql.BatchUpdateException: Column 'ID_TAREA_FK' cannot be null
我有两节课
public class Tarea {
private List<Sesion> sesiones;
}
public class Sesion {
private Tarea tarea;
}
与他们的getter和setter。 在我的代码中,我不会忘记
t.getSesiones().add(s);
s.setTarea(t);
数据库表为:TAREAS {ID_TAREA,...},SESIONES {ID_SESION,ID_TAREA_FK,...}
Tarea.hbm.xml中用于列表部分的代码的饼图是:
<bag name="sesiones" table="SESIONES" inverse="true" cascade="all">
<key column="ID_TAREA" not-null="true" />
<one-to-many class="com.jonasurbano.tareas.domain.sesiones.Sesion" />
</bag>
在Sesion.hbm.xml中:
<many-to-one name="tarea" class="com.jonasurbano.tareas.domain.tareas.Tarea" not-null="true">
<column name="ID_TAREA_FK" />
</many-to-one>
我做错了什么? 我已经阅读了Hibernate文档和这篇Hibernate一对多问题,但是它对我不起作用。
解决此问题后,我想知道是否有某种方法可以避免在Sesion类中引用Tarea,因为我认为此属性是多余的。
非常感谢!
检查您的数据库约束。 可能ID_TAREA_FK
not null
约束,请尝试删除此约束,因为Hibernate首先使用所有其他列的null值保存标识列。
删除
not-null =“ true”
。
<key column="ID_TAREA" />
用一个字符串重写映射:
<many-to-one name="tarea" class="com.jonasurbano.tareas.domain.tareas.Tarea" not-null="true" column="ID_TAREA_FK"/>
如果映射出现问题,请阅读此书,但没有任何帮助。http://docs.jboss.org/hibernate/core/3.3/reference/zh-CN/html/collections.html#collections-bidirectional
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.