@Entity
public class User {
	... 
	@ManyToMany
	@JoinTabke(name = "user_product",
						joinColumns = @JoinColumn(name = "user_id"),
						inverseJoinColumns = @JoinColumn(name = "product_id"))
	private List<Product> products;
}

@Entity
public class Product {
	...
	@ManyToMany(mappedBy = "products")
	private List<User> users;
}