gpt4 book ai didi

java - JPA : how to map SQL Server uniqueidentifier type

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:53 26 4
gpt4 key购买 nike

我已经继承了一个试图通过 JPA 映射的 SQL Server 数据库。许多表都有一个 uniqueidentifier 列。我正在尝试像这样映射它们:

@Id
@GenericGenerator(name = "generator", strategy = "guid", parameters = {})
@GeneratedValue(generator = "generator")
@Column(name = "APPLICATION_ID")
private String id;

Hibernate 提示:

Found: uniqueidentifier, expected: varchar(255)

最佳答案

POJO中主键属性的数据类型决定了其映射的DB列的数据类型,由Dialect指定。类(class)。根据SQLServerDialect由hibernate提供,它没有任何映射到uniqueidentifier的数据类型,String默认映射到varchar(255)

我认为 String 主键上的 guid 策略只意味着 hibernate 将为 POJO 的主键属性生成一个 GUID 值,并且这个生成的 GUID 值将被插入到varchar(255)列来模拟uniqueidentifier

的效果

您可以尝试覆盖 Dialect 指定的映射使用 columnDefinition 上课@Column

的属性
 @Id
@GenericGenerator(name = "generator", strategy = "guid", parameters = {})
@GeneratedValue(generator = "generator")
@Column(name = "APPLICATION_ID" , columnDefinition="uniqueidentifier")
private String id;

关于java - JPA : how to map SQL Server uniqueidentifier type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10451772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com