以下のエンティティと、@ManyToMany
の2つのマッピングがあります。@ManyToMany Hibernateのみ更新JoinTable
@Entity
@Table(name = "user")
public class User implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 5340562707217344212L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userId;
private String userName;
private String password;
private String firstName;
private String lastName;
private String emailId;
private Date createdDate;
private Byte status;
private Date lastModifiedDate;
@ManyToMany
@JoinTable(name = "user_products_mapper",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "product_id")
)
private List<Products> products = new ArrayList<Products>();
public void addProducts(Products product){
this.products.add(product);
}
@Entity
@Table(name="products")
public class Products implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1895580713896126954L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long productId;
private String productName;
private String description;
private double minBalance;
public Long getProductId() {
return this.productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public String getProductName() {
return this.productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
私の質問は:私はすでに、これらのエンティティを永続化している
1)。 (User and Products)
2)ユーザおよび製品は既にdatabasaeに存在しており、それらの間の関係は、私は、行がすでにユーザーと製品のために存在しているだけなのでJoinTable (user_products_mapper)
内のレコードを挿入する)@ManyToMany
3です。
4)これを達成する1つの方法は、私は上記の持っているだけで
User.addProducts
5を呼び出すと、このユーザーを行う前に)UNIDIRECTIONAL
マッピングを使用することで、製品のエンティティは以下のように取得されます:
User user = this.userDao.findOne(userId);
if(user == null){
//throw exception
}
Products product = this.productDao.findOne(productId);
6)これを行う方法はありますか?