如果没有插入子实体,如何级联,否则没有级联

时间:2011-09-19 07:42:17

标签: java hibernate jboss6.x seam2 hibernate-cascade

我们目前正在使用seam框架。我们在注释实体方面遇到了一些麻烦。我们有一个具有Tag实体子项的Deal实体。我们将实体注释为以下内容;

@Entity
public class Deal implements Serializable {


        private Tag tag;


        @ManyToOne
        public Tag getTag() {
            return tag;
        }

        public void setTag(Tag tag) {
            this.tag = tag;
        }
}

标签实体就像;

    @Entity
    @Table(uniqueConstraints = { @UniqueConstraint(columnNames = "label") })
    public class Tag implements Serializable {

        private String label;

        public void setLabel(String tagLabel) {
            this.label = tagLabel;
        }

        public String getLabel() {
            return label;
        }
}

用例是;我们有标记交易的默认值。用户通过自动填充输入框搜索标签。如果不匹配,他/她键入自己的免费标签。当他/她持续交易实体时,如果DB中没有存储标签,则标签实体将被持久化,否则引用存储标签实体来交易实体。

我们可以注释符合此用例的实体吗?或所有关于业务逻辑?

1 个答案:

答案 0 :(得分:0)

AFAIK没有像这样直接使用级联的方法。 您需要通过查找或创建一个获取id但未级联的新实体来分配具有正确ID的实体。