2011-09-19 50 views
0

我们目前正在使用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; 
     } 
} 

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

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

回答

0

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

+0

感谢您的回复。我们通过将持久标签分配给当前交易解决了这个问题。然后坚持下去。我认为这都是关于商业逻辑的。但是这让我觉得为这个用例注释实体太难了? :) –