Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Creation of M-M-Relation/Association fails

Hello,

I've got an Entity class Product with a self-relation:
	/** Set of products this one is compatible with.*/
	@ManyToMany(fetch=FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.REFRESH})
	@JoinTable(name="product_product_compatibility",
		joinColumns={@JoinColumn(name="prev_product_id")},
		inverseJoinColumns={@JoinColumn(name="next_product_id")})
	private Set<Product> compatibleProducts = new HashSet<Product>();

Guess what happens when I add products to this set like this:
	public boolean addCompatibleProduct (Product product) {
		if (compatibleProducts == null)
			compatibleProducts = new HashSet<Product>();
		boolean added = compatibleProducts.add (product);
		if (added)
			product.addCompatibleProduct (this);
		return added;
	}

If you said nothing, you've won. The only SQL that was generated is:
[EL Fine]: 2010-03-15
15:48:09.88--ClientSession(5978600)--Connection(23637841)--Thread(Thread[main,5,main])--UPDATE
product SET jdo_version = ? WHERE ((product_id = ?) AND (jdo_version = ?))
	bind => [43, 30, 42]
[EL Fine]: 2010-03-15

What can I do to avoid this? Or is this a bug of EclipseLink?

Kind Regards, Michael


Back to the top