Pab*_*blo 3 java constructor jpa java-ee-6
我怀疑在使用JPA时使用构造函数初始化列表和其他字段,具体我的问题如下:
假设我有一个实体bean,它有很多@OneToMany关系,我想使用构造函数初始化它们,这样我就不必在我的控制器中使用这样的语句了:
myEntity=new MyEntity();
myEntity.innerList=new ArrayList<Type>();
myEntity.innerList.add(newObject);
Run Code Online (Sandbox Code Playgroud)
所以相反,我会:
public MyEntity(){
innerList=new ArrayList<Type>();
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是......在从数据库映射属性时,JPA会调用此构造函数吗?我的意思是如果我在整个列表之前保留,构造函数是否会运行并重新初始化我的entites列表?非常感谢.
是的,JPA将调用您实体的no-arg构造函数.之后,您的列表将被JPA引擎的特定List实现替换.这些列表允许延迟加载和JPA引擎所需的其他功能.
ArrayList
在这种情况下,我不太关心不必要的实例化.这不是典型的JPA应用程序占用最多时间的地方.我发现拥有明确的不变量并尊重它们更为重要.其中一个不变量是:我的实体总是有一个非空的其他实体列表.
归档时间: |
|
查看次数: |
2817 次 |
最近记录: |