Geo*_*old 8 java sql-server hibernate
我继承了一个我试图通过JPA映射的SQL Server数据库.许多表都有一uniqueidentifier列.我试图像这样映射它们:
@Id
@GenericGenerator(name = "generator", strategy = "guid", parameters = {})
@GeneratedValue(generator = "generator")
@Column(name = "APPLICATION_ID")
private String id;
Run Code Online (Sandbox Code Playgroud)
Hibernate抱怨:
Found: uniqueidentifier, expected: varchar(255)
Run Code Online (Sandbox Code Playgroud)
Ken*_*han 10
POJO中主键属性的数据类型确定其映射的DB列的数据类型,该列由Dialect类指定.按照SQLServerDialect由Hibernate提供,它不具有映射到任何数据类型uniqueidentifier,并String以默认的地图varchar(255)
我认为 主键guid上的策略String只意味着hibernate将为POJO的主键属性生成GUID值,并且此生成的GUID值将插入到varchar(255)列中以模拟效果uniqueidentifier
您可以尝试使用的columnDefinition属性覆盖Dialect类指定的映射@Column
@Id
@GenericGenerator(name = "generator", strategy = "guid", parameters = {})
@GeneratedValue(generator = "generator")
@Column(name = "APPLICATION_ID" , columnDefinition="uniqueidentifier")
private String id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12602 次 |
| 最近记录: |