我遷移代碼從EJB2到EJB3獨特。我已將POJO轉換爲JPA實體。很少有實體相同的名稱,如@Entity(name =「myentity1」)。我在部署時遇到錯誤「實體名稱在持久性單元中必須是唯一的」。發生這種情況是因爲模塊依賴於其他模塊,這些模塊具有相同名稱的實體。有什麼方法可以在使用SessionCustomizer或其他任何方式時動態更新名稱?此時我無法更改實體名稱,因爲實體名稱被廣泛使用。我使用EcllipseLink 2.5EcllipseLink:具有相同名稱的JPA實體。錯誤:實體名稱必須是一個持久性單元
示例代碼
EJB模塊1(依賴於EJB單詞數)
package com.my.module1.package1;
@javax.persistence.Entity(name = "myentity1")
@Table(name = "TABLE1")
public class MyEntity1
implements Serializable {
@Column(name = "ID")
private Long Id;
public Long getId() {
return Id;
}
public void setId(Long Id) {
this.Id = Id;
}
}
// EJB單詞數
package com.my.module2.package2;
@javax.persistence.Entity(name = "myentity1")
@Table(name = "TABLE1")
public class MyEntity1
implements Serializable {
@Column(name = "ID")
private Long Id;
public Long getId() {
return Id;
}
public void setId(Long Id) {
this.Id = Id;
}
}
任何幫助將非常感激。
他們必須在持久性單元唯一的,這樣的名字可以識別哪些類和表將被用於查詢。你的包雖然可能會進入他們自己的持久化單元,而不是將它們合併成一個。或者你可以用orm.xml覆蓋實體註釋。 – Chris