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