我試圖在相當複雜的OSGi環境中使用JPA設置一個簡單的外鍵關係。JPA @OneToOne與不從其OSGi包導出的實體
兩個實體我想用成捆的構成就像這樣:
masterbundle
|->org.masterpackage.persistence
|-> MasterEntityDto.java
slavebundle
|->org.slavepackage.persistence
|-> SlaveEntity.java
SlaveEntity
要參考MasterEntityDto
像這樣
@Entity(name = "SlaveEntity")
public class SlaveEntity {
@Id
@Column(name = "slaveID")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@OneToOne
@JoinColumn(name = "masterEntity_id")
private MasterEntity masterEntity;
// snip..
}
現在,這種失敗,因爲masterbundle
沒有出口MasterEntityDto(或其包裝),我想。我們正在使用OSGi的服務方面,masterBundle是provide-interface
-ing a 服務使用Dto而不是Dto。 的例外,我看的時候包開始說,除其他事項外org.osgi.framework.BundleException: Unresolved constraint in bundle slavebundle [121]: Unable to resolve 121.8: missing requirement [121.8] osgi.wiring.package;
問題:如何創建從SlaveEntity
到MasterEntityDto
一個@OneToOne
關係?這在使用OSGi服務平臺時是不可能的,我只公開服務而不是整個捆綁包/包?
編輯1 根據要求:MasterEntityDto
沒有什麼幻想。
@Entity(name = "MasterEntityDto")
public class MasterEntityDto {
@Id
@Column(name = "id", length = 128)
private String masterId;
// snip
}
我希望JPA做出SlaveEntity
- 表SlaveId
列(這是本臺PK)和masterEntity_id
這將作爲外鍵,指着桌子MasterEntityDto
的id
列。
你可以顯示你的'MasterEntityDto'的代碼嗎?數據庫中的哪一列包含外鍵? – Uooo
我用'MasterEntityDto'代碼更新了我的帖子。我不確定這是否真的相關。還試圖描述表應該是什麼樣子。我說的是單向一對一的關係,因爲我無法修改'MasterEntityDto'。我只是想加強它。此外,針頭說,實際的代碼是不同的 - 更復雜,併爲此張貼長。這只是它的本質。 – albifant