hibernate - 如何在 Hibernate 中级联删除集合?

标签 hibernate orm coldfusion cascade coldfusion-9

假设我有两个实体,一个 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/

相关文章:

java - JPS : HQL query to check null attribute

c++ - 使用 ORM(例如 ODB)时处理类更改

Coldfusion:如何使用 cfthrow 转储参数范围?

coldfusion - ColdFusion 中的鸭式输入

mysql - hibernate 异常 : Errors in named queries: FindPostWithComments

java - 使用 Hibernate 从 SQL 查询创建表

java - Hibernate 映射类 SQL 查询中的公式标记

java - 如何以编程方式生成 hibernate POJO 类?

python - 如何在 Django 之外访问 Django DB 和 ORM

javascript - 使用 jQuery 将多个 CSS 类组成的 Javascript 数组分配给一个元素