【问题标题】:How to cascade if child entity is not inserted, else no cascading如果没有插入子实体如何级联,否则没有级联
【发布时间】:2011-09-19 07:42:17
【问题描述】:

我们目前正在使用接缝框架。我们在注释实体时遇到了一些麻烦。我们有一个 Deal 实体,它有一个 Tag 实体子实体。我们将实体注释如下;

@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;
        }
}

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。我们通过将持久标签分配给当前交易解决了这个问题。然后坚持。我认为这都是关于商业逻辑的。但这让我觉得为这个用例注释实体是否太难了? :)
    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2021-03-26
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多