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