第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

休眠異常:由 jpa 本身調(diào)用的共享引用 (?)

休眠異常:由 jpa 本身調(diào)用的共享引用 (?)

胡子哥哥 2022-09-22 10:31:11
我目前遇到一些麻煩,將對象寫入數(shù)據(jù)庫。我的問題確實(shí)出現(xiàn)在一個相當(dāng)復(fù)雜的數(shù)據(jù)模型中,但我會嘗試將其分解為一個可以理解的示例。假設(shè)有 A 類:@Entity(name = "a")@Table(schema = "foo")public class A {    private static final long serialVersionUID = -5305374150112492804L;    logger = LoggerFactory.getLogger(A.class);    @Id    @Column(name = "tid", nullable = false, unique = true)    @SequenceGenerator(name = "globalSequenceGen", schema = "foo", sequenceName = "foo_sequence")    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "globalSequenceGen")    private Integer TID;    @Column(name = "b")    private String bId;    @OneToMany(targetEntity = B.class)    @JoinColumn(name = "random_b_attribute", referencedColumnName = "b", updatable = false, insertable = false)    private List<B> b;    @PrePersist    @PreUpdate    public void prePersist() {        bId = b == null || b.isEmpty() ? null : b.get(0).getRandomAttribute();    }    ...}引用的類 B 非常簡單:它只包含帶注釋的屬性。請注意,A 的實(shí)例可以并且將在其屬性中引用 B的相同“集合”。@Columnb問題來了:我確實(shí)從數(shù)據(jù)庫中檢索D的對象(懶惰)。它們都不引用A的任何對象(例如,數(shù)據(jù)庫中的列a為空)。我確實(shí)從數(shù)據(jù)庫中檢索了A的所有對象,就像我后來想將它們插入D實(shí)例(也是懶惰的)一樣。EntityManager我不碰任何或?qū)傩浴#aA#b嘗試任何新創(chuàng)建的 D 實(shí)例最終都會得到以下異常:EntityManager#persistCaused by: org.hibernate.HibernateException: Found shared references to a collection: random.package.structure.A.b在我的研究中,我發(fā)現(xiàn),在提供相同的條目時可能會導(dǎo)致錯誤(不要與具有相同條目混淆)。顯然,這源于jpa本身對A實(shí)例的初始化?!似乎,回收相同的是一個好主意,但是在更新未更改的對象時顯然會引起問題...CollectionCollectionCollection清除之前保留的對象似乎可以解決問題。但是,由于所有內(nèi)容都是懶惰的,因此以后使用這些對象會導(dǎo)致其他問題。EntityManager對于如何為每個 A 實(shí)例創(chuàng)建新 s 或以其他方式防止故障,您是否有任何提示?Collection提前非常感謝,如果我確實(shí)錯過了任何信息,請直接詢問!
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個贊

當(dāng)然,這是一種關(guān)系。我改變了我的數(shù)據(jù)模型(使用映射表),這解決了我的問題!@ManyToMany



查看完整回答
反對 回復(fù) 2022-09-22
  • 1 回答
  • 0 關(guān)注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號