我想從一個EAR項目訪問實體bean到另一個EAR項目,但我得到這個錯誤。無法在EAR項目之間形成EJB關係。關係屬性異常?
異常描述:類 com.huwag.ao.server.bvg.tarif.ejb.entity.Tarif]使用非實體 [類com.huwag.server.ejb.entity.Mandant]作爲 關係屬性[字段權限]中的目標實體。
它看起來像我的塔裏夫找不到我Mandant實體。 Tarif生活在一個耳朵文件中,而Mandant生活在另一個文件中(可以說是核心項目)。
我Mandant(以核心項目)是這樣的:
@Entity
@Table(name = "HUW_AO_MANDANT")
public class Mandant implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "MANDANT_ID")
private Long id;
@Column(name = "NAME")
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在我的依賴EAR JAR住這個傢伙:
@Entity
@Table(name = "HUW_AO_TARIF")
@NamedQueries({
@NamedQuery(
name = "getAllTarif",
query = "SELECT t FROM Tarif t")
,
@NamedQuery(
name = "getTarifForMandant",
query = "SELECT t FROM Tarif t where t.mandantId = :mandant")
})
public class Tarif implements Serializable {
@Id
@Column(name = "NAME")
private String name;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name="MANDANT_ID")
private Mandant mandant;
public Mandant getMadant() {
return mandant;
}
public void setMadant(Mandant mandant) {
this.mandant = mandant;
}
public String getName() {
return name;
}
public void setName(String firstName) {
this.name = firstName;
}
}
Architectually它看起來像這樣。
我試圖形成從一個實體上的另一個實體,生活在另一個部署神器的關係。
我正在使用Glassfish 4.我的persistence.xml中沒有任何東西,因爲據我所知,Glassfish 4只是找到這些類,而不是查看persistence.xml。
- 我是否正確使用關係註釋?
- 我是否需要將這些實體放在persistence.xml文件中?
- 我是否需要提供本地/遠程接口,以便一個EAR文件可以看到另一個?
- 是否有可能在不同包裝工件之間形成EJB之間的這種關係?
謝謝..我確實需要將實體放入我的持久性XML中。把它作爲答案,然後我可以給你+1。 –
您是否獨立發佈EAR文件?您一定能夠使用核心EAR中的EJB,但我認爲必須爲它們提供遠程EJB接口。 –