0
考慮下面的SQL模式:一對多關係總是空
Two Views
VIEW PRODUCT
ID_PROPOSAL
ID_PRODUCT
VIEW PERSON
ID_ENTITY
ID_PRODUCT
NAME
JPA
@NamedQueries({
@NamedQuery(name = "Product.getByProposalId",
query = "SELECT ie "
+ "FROM Product ie "
+ "WHERE ie.idProposal = :proposalId ")
})
@Entity
Table(name = "PRODUCT")
public classe Product{
@Id
@Column(name = "ID_PRODUCT")
private Long idProduct;
@Column(name = "ID_PROPOSAL")
private Long idProposal;
@OneToMany(mappedBy="product")
List<Person> persons;
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons= persons;
}
}
@Entity
Table(name = "PERSON")
public classe Person{
@Id
@Column(name = "ID_ENTITY")
private Long idEntity;
@Column(name = "ID_PRODUCT")
private Long idProduct;
@ManyToOne
@JoinColumn(name = "ID_PRODUCT", insertable = false, updatable = false)
Product product;
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons= persons;
}
}
Query query = emanager.createNamedQuery("Product.getByProposalId");
query.setParameter("propostaId", proposalId);
return query.getResultList();
它返回正確的產品的結果,但對於每一個產品不返回任何人,在日誌文件中我不能看到任何查詢查看人員。 應用程序服務器是websphere和jpa實現是openjpa1.2.3
任何想法? 在此先感謝 致以問候
所以,如果你調用'product.getPersons()大小()'對返回的產品之一 - 你不沒有得到任何結果?可能只是懶加載。 –
你是否將'懶惰加載'配置爲'true'類似的東西? –
如果你是懶惰加載,你將需要訪問結果列表中的每條記錄,並通過使用諸如Product.getPersons()。size()' – jr593