目標是刪除所有者時刪除所有者。我有以下幾種類型:如何在沒有來自所有者實體的鏈接的情況下指定JPA中的依賴關係?
@Entity
class Dependent {
@ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY, optional = false)
@Column(name = "OWNER")
private Owner _owner;
}
@Entity
class Owner {
...
}
在當前實現中它的所有者已被刪除後依然存在。
所有者沒有任何指向Dependent的鏈接並且無法更改,所以我不能使用@Dependent註釋或cascade = DELETE。
JPA是否支持這種「逆向依賴」? 另一個問題是,當字段_owner被刪除時,可選項=「false」保證是什麼?
所有者類不能被修改。 是否確定JPA不提供指定依賴類中依賴項的選項?那麼「optional ='false'」是什麼意思? – oakjumper 2009-12-30 06:20:52
'optional = false'只聲明哪一方負責映射;你仍然需要兩個類的映射。如果您無法更改所有者類,則必須使用原生查詢並手動完成所有操作。不要忘記每次刷新緩存。 – 2009-12-30 09:06:00
您的問題是「所有者類別無法修改」。這是你必須解決的問題。您必須決定更改所有者類是否更復雜,或者花費幾個星期來調試解決方法。或者,也許你可以用HBM文件映射所有者類。如果您使用Spring,您可以輕鬆地將註釋與舊的XML配置混合使用。 – 2009-12-30 09:08:52