java - 何时调用 EJB 实体 setter

标签 java jpa glassfish ejb

我想对 EJB Entity Bean 字段的每次更改使用react。我所做的只是将一些代码放入 Setter 中。

我期望的是一些戏剧性的崩溃,因为每次初始化时都会调用 setter (甚至可能多次)。

发生了什么,它工作完美,只有在值更改时才调用 getter,而不是在初始化时调用。

但我想知道这是为什么?实体是通过反射初始化的吗?

最佳答案

这取决于访问类型。如果所有映射注释都放在字段上,JPA 会直接设置字段,而不经过 setter,并直接从字段中读取实体的状态。

如果映射注释位于 getter 上,JPA 使用 setter 来填充实体,并使用 getter 来检索其状态。

可以使用 Access 自定义访问类型注释。

关于java - 何时调用 EJB 实体 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17613579/

相关文章:

java - 配置本地主机 https glassfish

java - Hibernate 和 Java 泛型 - 无法使用 MappedSuperClass 创建 session 工厂

java - NetBeans 用来从数据库生成实体类的工具是什么?

rest - GlassFish错误:禁用JAX-RS EJB支持

java - 使用 Sesame 处理 SPARQL/XML 流(Vitruoso 的输出)

java - 了解 Hibernate 获取

java - 在 Glassfish Web 部署后执行代码

从具有基类和接口(interface)的 c++ 类使用 SWIG 生成 Java 类

java - 如何在 spring 中使用 IN 子句执行查询?

java - 使用字符串(数字)进行计数