您的位置:首页 > 其它

Hibernate Join

2016-01-22 14:48 274 查看

1) A和B是一对多的关系。 

   我在B的BEAN上面,通过Anotation建立如下关系。 

   @ManyToOne(cascade = CascadeType.REFRESH, targetEntity = TABLE_A.class) 

   @JoinColumn(name = "A_ID", referencedColumnName = "ID", nullable = true, insertable = false, updatable = false)

2) @ManyToMany(fetch = FetchType.LAZY)

   @Cascade(value = { CascadeType.SAVE_UPDATE })

   @JoinTable(name = "COM_USER_ROLE", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })

   private Set<SystemRole> systemRoles = new HashSet<SystemRole>();

3) @JoinColumn(name = "PAYMENT_ID")

   @ManyToOne(fetch = FetchType.LAZY)

   private Payment payment;

4) 现在的问题来了,就是在 TABLE_B.A_ID = TABLE_A.ID同时,还要求TABLE_B.COLB1="ABC"。 

   解决办法如下:

   @ManyToOne(cascade = CascadeType.REFRESH, targetEntity = TABLE_A.class)

   @JoinColumnsOrFormulas(value={

   @JoinColumnOrFormula(

column=@JoinColumn(name ="A_ID", referencedColumnName ="ID", 

nullable = true, insertable =false, updatable = false)

),

@JoinColumnOrFormula(formula=@JoinFormula(value="'ABC'", referencedColumnName = "COLB1"))  

   })

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐