Учитывая следующий 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();
возвращает правильные результаты продукта, но и для каждого продукта не возвращайте Лица, в лог-файле я не видел ни одного запроса к View Person. Сервер приложений - websphere, а реализация jpa - openjpa1.2.3
Любые идеи? Заранее благодарен С уважением
Итак, если вы звоните 'product.getPersons() размер()' на одном из возвращенных продуктов - вы не» t получить какие-либо результаты? Может быть, просто ленивая загрузка. –
Вы настроили 'Lazy loading' как' true' что-то вроде этого? –
Если вы lazy-load, вам нужно будет посетить каждую запись в списке результатов и инициализировать 'person', используя что-то вроде' Product.getPersons(). Size() ' – jr593