POJO中主键属性的数据类型确定其映射DB列的数据类型,这由Dialect类指定。按照SQLServerDialect由Hibernate提供,它不具有任何数据类型映射到
uniqueidentifier,并且
String在默认情况下映射到
varchar(255)
我认为
guid基于
String主键的策略仅意味着hibernate将为POJO的主键属性生成一个GUID值,并且此生成的GUID值将被插入到
varchar(255)列中以模拟
uniqueidentifier
你可以尝试覆盖由指定的映射方言使用类columnDefinition属性
@Column
@Id @GenericGenerator(name = "generator", strategy = "guid", parameters = {}) @GeneratedValue(generator = "generator") @Column(name = "APPLICATION_ID" , columnDefinition="uniqueidentifier") private String id;


