簡體   English   中英

雙向多對多JPA

[英]Bi-directional Many to Many JPA

我在JPA遇到困難,希望有人可以幫助我。

我有3張桌子:

  • 角色(CPE_ROL)
  • TipoUsuario(GTV_TIPOUSU)
  • RolTipoUsuario(CPE_ROLTUS-聯接表)

Rol.java

@JoinTable(name = "CPE_ROLTUS", joinColumns = {
    @JoinColumn(name = "CPE_ROLTUS_TIPOUSU_ID", referencedColumnName = "GTV_TIPOUSU_ID")}, inverseJoinColumns = {
    @JoinColumn(name = "CPE_ROLTUS_ROL_ID", referencedColumnName = "CPE_ROL_ID")})
@ManyToMany(fetch = FetchType.LAZY, cascade={CascadeType.REFRESH})
private List<TipoUsuario> tipoUsuarioList;

TipoUsuario.java

@ManyToMany(mappedBy = "tipoUsuarioList", fetch = FetchType.LAZY, cascade={CascadeType.REFRESH})


private List<Rol> rolesDefault;

由於某些原因,RoleDefault從未被填充,我想知道是否丟失了某些東西。

提前致謝。

丹尼爾

我的猜測是,當您創建對象時,您並沒有設置關系的雙方。 您必須在JPA中維護雙向關系。 當添加到一側時,也要添加到另一側。

參見http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Object_corruption.2C_one_side_of_the_relationship_is_not_update__after_updating_the_other_side

您很可能已啟用緩存,或者正在使用相同的EntityManager,因此在讀取時會從緩存中獲取對象。 您也可以禁用共享緩存,或刷新對象,但是最好修復持久性代碼。

否則,啟用最好的登錄並查看執行了什么SQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM