我想对EJB Entity Bean的字段的每个更改做出反应。我所做的只是将一些代码放入Setter。
我所期待的是一些戏剧性的崩溃,因为每次初始化(甚至可能多次)都会调用setter。
反而发生了什么,它完美地工作,只有当值发生变化而不是在初始化时才会调用getter。
但我想知道为什么会这样?是通过反射初始化的吗?
答案 0 :(得分:1)
取决于访问类型。如果所有映射注释都放在字段上,JPA直接设置字段,而不通过setter,并直接从字段中读取实体的状态。
如果映射注释在getter上,JPA使用setter填充实体和getter来检索它们的状态。
可以使用Access注释自定义访问类型。