我試圖刷新@ManyToMany關係,但這樣做的,而不是清除...JPA @ManyToMany只有一方?
我的項目類看起來是這樣的:
@Entity
public class Project {
...
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "PROJECT_USER",
joinColumns = @JoinColumn(name = "PROJECT_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "USER_ID", referencedColumnName = "ID"))
private Collection<User> users;
...
}
但是我沒有 - 我不想 - 用戶實體中的項目集合。
當我看着生成的數據庫表,他們看起來不錯。它們包含所有列和約束(主鍵/外鍵)。
但是,當我堅持一個具有用戶列表的項目(並且用戶仍在數據庫中)時,映射表未得到更新得到更新,但是當我之後刷新項目時,用戶被清除。
爲了更好地理解:
Project project = ...; // new project with users that are available in the db
System.out.println(project getUsers().size()); // prints 5
em.persist(project);
System.out.println(project getUsers().size()); // prints 5
em.refresh(project);
System.out.println(project getUsers().size()); // prints 0
所以,我怎麼能刷新用戶和項目之間的關係?
感謝... em.flush( )做到了! – 2010-05-10 17:59:31
一個人很好奇你試圖實現的功能是什麼?試驗這個是關於ORM如何工作的有趣的學術研究,但我不知道你爲什麼要這樣做。 – Affe 2010-05-10 18:08:44
for UnitTesting ... – 2010-05-11 01:30:39