此标记提供有关容器管理的持久性(CMP)实体 bean 的字段持久性的信息。对具有下列模式的方法使用此参数:public abstract Foo getX()、public abstract boolean isX() 和 public abstract void setX(Foo newVal)。这将在生成的 CMP 层中创建类型为 Foo 的 CMP 字段 X,并且将创建 getX 和 setX 方法的具体实现。对于 BMP,它将生成 getX 和 setX 方法,用来跟踪脏标志(从而仅在必要时才调用 ejbStore)。
如果类型为布尔,则可以对 get 方法添加前缀 is 而不是 get。如果不定义 setter 方法,则不会为具体 BMP/CMP 类生成 setter 方法(只有在 EJB 1.1 或 EJB 2.0 中才会通过使用 CMP 1.x 来生成具体 CMP 类)。这对于诸如下面这样的情况是很有用的:任何内容都不是按照程序设置的,而是通过诸如存储过程的外部源设置的。注意,某些应用程序服务器要求同时应用 jdbc-type 和 sql-type 才能正常工作;参阅应用程序服务器的相关子任务。适用于 EJB 实体 bean 字段,尤其是在持久字段的 getter 方法上。
参数 | 类型 | 适用范围 | 描述 | 是否必需 |
column-name | 文本 | 声明 CMP 字段将映射至的列名。 | false | |
jdbc-type | 文本 | 声明 JDBC 类型。它的值必须是类型为 java.sql.Types(例如,BIT 和 CHAR)的一个字段。CMP 提供程序将使用此 JDBC 类型来确定要对 INSERT、UPDATE 和 SELECT 查询的 PreparedStatement 和 ResultSet 调用哪种方法。您必须指定下列其中一种属性:
|
false | |
sql-type | 文本 | 声明数据库中的字段的实际类型。仅当 CMP 容器为您创建表时(如果可能的话)才将使用此值。 | false | |
read-only | 布尔 | 指示字段是只读的。您必须指定下列其中一种属性:
|
false |