Я читал статью, в которой автор реализовал класс Entity, подобный этому:
@Entity
public class Product {
@OneToMany
private List<Part> parts; // note the missing "= new ArrayList<Part>();"
public Product() {
}
// getters and setters
}
Я всегда использовал для создания экземпляров полей коллекции, в данном случае parts
, либо встроенный (private List<Part> parts = new ArrayList<Part>();
) или внутри конструктора, потому что, насколько я помню, это не привело бы ко всем видам NPE.
Я думал, что в JPA 2 все изменилось, и теперь среда выполнения JPA автоматически создает экземпляр поля, используя байт-код среды выполненияулучшения или отражения, поэтому я дал ему еще одну попытку, однако я все еще не могу заставить его работать без создания экземпляра поля parts
, в противном случае aProduct.getParts().add(aPart)
вызовет NPE.
Так что мой вопрос в том, чтоМожно ли заставить это работать без создания экземпляра поля parts
в средах Java SE и Java EE с использованием Hibernate в качестве поставщика?Если да, то как?