簡體   English   中英

與共享的一對一關系在執行時不起作用

[英]One to One Relationship With Shared not Working at Execution time

我在MySql中使用EclipseLink(JPA 2.0),但模型中存在某些問題。 我有2個實體:Delincuente,PerfilFisico。 他們共享Delincuente的Pk。

數據庫正常工作,但是當我插入一個Delincuente然后再插入Perfil Fisico時,我試圖顯示該Delincuente的PerfilFisico(使用Delincuente.PerfilFisico。),它只是空的。 我檢查了數據庫中的表,一切正常。

如果我再次運行該系統(我在Netbeans 7.2中進行開發)並且咨詢了我剛剛在DB上注冊的Delincuente,它將顯示所有字段,並且一切都完美!

有代碼:

Delincuente.java

@OneToOne(cascade = CascadeType.ALL, mappedBy = "delincuente")
private PerfilFisico perfilFisico;  

PerfilFisico.java

@JoinColumn(name = "PK_IdDelincuente", referencedColumnName = "PK_Identificacion", insertable = false, updatable = false)
@OneToOne(optional = false)
private Delincuente delincuente;

有什么問題,我已經讀了好幾天了,但我不知道是什么問題。 有小費嗎?

正如我所說的那樣,但是當您運行它並注冊一個新的Delincuente時,您必須重新運行系統才能成功完成咨詢並查看PerfilFisico

JPA EntityManager具有用於托管實體的第一級緩存,而諸如EclipseLink的提供程序具有第二級緩存。 因此,如果您不維護雙向映射的兩面,以免它們與數據庫不同步,則除非您強制刷新,清除緩存或重新啟動,否則不會顯示該映射。 該應用程序必須保持雙向關系,JPA不會為您做到,因為它們本來就是pojos。

暫無
暫無

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

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