Java 如果未插入子实体,则如何级联,否则不进行级联

Java 如果未插入子实体,则如何级联,否则不进行级联,java,hibernate,jboss6.x,seam2,hibernate-cascade,Java,Hibernate,Jboss6.x,Seam2,Hibernate Cascade,我们目前正在使用seam框架。我们在注释实体时有点麻烦。我们有一个交易实体,它有一个子标记实体。我们将实体注释如下: @Entity public class Deal implements Serializable { private Tag tag; @ManyToOne public Tag getTag() { return tag; } public void setTag

我们目前正在使用seam框架。我们在注释实体时有点麻烦。我们有一个交易实体,它有一个子标记实体。我们将实体注释如下:

@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;
        }
}
用例是;我们有默认值来标记交易。用户通过自动完成器输入框搜索标记。如果没有匹配项,则他/她键入自己的免费标签。当他/她坚持交易实体时,如果数据库中没有存储标签,则标签实体将被坚持,否则将存储的标签实体引用到交易实体


我们可以注释符合这个用例的实体吗?还是所有关于业务逻辑的问题?

AFAIK没有像这样直接使用cascade的方法。
您需要指定一个具有正确id的实体,可以通过查找该实体,也可以通过创建一个新实体来获取id,但不级联。

感谢您的回复。我们通过将持久化标记分配给当前交易解决了这个问题。然后坚持下去。我认为这一切都与商业逻辑有关。但这让我想到,为这个用例注释实体是否太难了