我有一個單獨的實體對象A,它與表和表中的1到1映射,另一個實體對象「AjoinB」從單個實體對象擴展並與另一個實體對象連接。由於這個,我得到這個「DTYPE」無效標識符。下面是一個例子JPA「DTYPE」無效標識符
@Entity
@Table(name="TableA")
@NamedQuery(...)
public class A implements Serializable{
@EmbeddedId
private ABC id;
@Column(name="...")
//getters/setters
@Entity
@Table(name="TableA")
@NameQuery(...)
public class AjoinB extends A{
@OneToOne
@JoinColumn({...}
private B b;
//gettter/setters
有沒有人知道如何解決這個問題。我知道做繼承的東西會產生DTYPE,但我的表沒有該列:(
更清楚的是,我可以有一個單獨的表沒有歧視列繼承嗎?它是沒有意義的,實體
解決你怎麼能指望的持久性機制來確定每一行是什麼樣的對象類型?靠魔術? –
這不是關於繼承。 JPA將其視爲繼承,因爲我從父類擴展。這是問題所在 1.創建實體A(單一實體,有人會用這個) 2.我希望有另一個實體,稱爲A-加入了等同於不同的是它的關聯 3.我不知道想要在A-連接中有重複的字段,所以我從A 擴展了4.現在JPA認爲這是單表繼承。 這不是關於汽車和汽車類型的問題。 – SpyClown
如果您有實體的類繼承,並且您沒有將根類的繼承策略定義爲除單個表以外的東西,那麼JPA「認爲」某物是單表繼承。 –