Hibernate Join

1) A and B have a one-to-many relationship. 

   I am on B's BEAN and establish the following relationship through 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) The problem now is that when TABLE_B.A_ID = TABLE_A.ID, TABLE_B.COLB1="ABC" is also required. 

   The solution is as follows:

   @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"))  

   })

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327049020&siteId=291194637