假设我有两个实体,一个 Post
和一个 Comment
(在 ColdFusion 中):
component persistent="true" table="post"
{
property name="Id" fieldtype="id";
property name="Comments" fieldtype="one-to-many" cfc="Comment" fkcolumn="post_id" cascade="all";
}
component persistent="true" table="comment"
{
property name="Id" fieldtype="id";
property name="Post" fieldtype="many-to-one" cfc="Post" column="post_id";
}
Post
具有Comments
的集合。现在我想删除帖子
,并自动删除评论
。我尝试过简单的方法:
var post = EntityLoadByPK("Post", 13);
EntityDelete(post);
但是我收到一个 Hibernate 错误,指出 post_id
不能设置为 null。我做错了什么,如何解决这个问题?
最佳答案
您需要调整您的映射。尝试将comment的Post属性设置为不为null,并将post的Comments属性标记为inverse。
component persistent="true" table="post"
{
property name="Id" fieldtype="id";
property name="Comments" fieldtype="one-to-many" cfc="Comment" fkcolumn="post_id" cascade="all" inverse="true";
}
component persistent="true" table="comment"
{
property name="Id" fieldtype="id";
property name="Post" fieldtype="many-to-one" cfc="Post" column="post_id" notnull="true";
}
关于hibernate - 如何在 Hibernate 中级联删除集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522222/