@Column
默认情况下,JPA 持续性提供程序假设每个实体的持久字段存储在其名称与持久字段的名称相匹配的数据库表列中。
使用 @Column
批注:
-
将持久字段与其他名称关联(如果默认列名难于处理、与事先存在的数据模型不兼容或作为数据库中的列名无效)
-
将持久字段与辅助表中的列关联(请参阅 @SecondaryTable )
-
微调数据库中列的特征
表 1-7 列出了此批注的属性 API 。
。有关更多详细信息,请参阅
表 1-7 @Column 属性
属性 | 必需 | 说明 |
---|---|---|
|
| 默认值 :空 默认情况下,JPA 使用最少量 SQL 创建一个数据库表列。 如果需要使用更多指定选项创建的列,请将 注意 :捕获批注中的 DDL 信息时,某些 JPA 持续性提供程序可以在生成数据库模式时使用此 DDL。例如,请参阅“用于 Java2DB 模式生成的 TopLink JPA 扩展” 。 |
|
| 默认值 : 默认情况下,JPA 持续性提供程序假设所有列始终包含在 如果该列不应包含在这些语句中,请将 |
|
| 默认值 : 255 默认情况下,JPA 持续性提供程序假设所有列在用于保存 如果该列不适合于您的应用程序或数据库,请将 |
|
| 默认值 :JPA 持续性提供程序假设实体的每个持久字段都存储在其名称与持久字段或属性的名称相匹配的数据库表列中。 要指定其他列名,请将 |
|
| 默认值 : 默认情况下,JPA 持续性提供程序假设允许所有列包含空值。 如果不允许该列包含空值,请将 |
|
| 默认值 : 0. 默认情况下,JPA 持续性提供程序假设所有列在用于保存十进制(精确数字)值时的精度为 0。 如果该精度不适合于您的应用程序或数据库,请将 |
|
| 默认值 : 0. 默认情况下,JPA 持续性提供程序假设所有列在用于保存十进制(精确数字)值时的伸缩度为 0。 如果该伸缩度不适合于您的应用程序或数据库,请将 |
|
| 默认值 :JPA 持续性提供程序假设实体的所有持久字段都存储到一个其名称为实体名称的数据库表中(请参阅 @Table )。 如果该列与辅助表关联(请参阅 @SecondaryTable ),请将 |
|
| 默认值 : 默认情况下,JPA 持续性提供程序假设允许所有列包含重复值。 如果不允许该列包含重复值,请将 |
|
| 默认值 : 默认情况下,JPA 持续性提供程序假设列始终包含在 如果该列不应包含在这些语句中,请将 |
示例 1-8 显示了如何使用此批注使 JPA 将
empId
持久保存到辅助表
EMP_HR
中的列
EMP_NUM
。默认情况下,JPA 将
empName
持久保存到主表
Employee
中的列
empName
。
示例 1-8 @Column
@Entity @SecondaryTable(name="EMP_HR") public class Employee implements Serializable { ... @Column(name="EMP_NUM", table="EMP_HR") private Long empId; private String empName; ... }
@ColumnResult
执行
使用 @ColumnResult
批注返回标量值。标量类型由您在 @ColumnResult
中标识的列类型确定。
有关详细信息,另请参阅 、和 。
列出了此批注的属性。
。有关更多详细信息,请参阅
name
在原生 SQL 查询的 SELECT
语句中将 name
设置为列名的 String
等效形式。如果在 SELECT
中使用列别名(AS
语句),则将 name
设置为列别名。
显示了如何使用此批注将
Item
(请参阅)标量 name
包含在结果列表(请参阅)中。在该示例中,结果列表将为 Object
数组的 List
,如:{[Order, "Shoes"], [Order, "Socks"], ...}
。
InheritanceType.SINGLE_TABLE
或 JOINED
时,JPA 持续性提供程序将创建一个名为 DTYPE
的标识符列以区分继承层次中的类。