我们在 Microsoft SQL Server 2008(已创建)中有一个架构,其中有一个表,其列类型为 char(32)
。
我们希望将其映射到实体属性,但失败并显示一条消息:
org.hibernate.HibernateException: Wrong column type in myTable for column myColumn. Found: char, expected: varchar(255)
使用的方言是org.hibernate.dialect.SQLServer2008Dialect
并且该属性仅注释为
@Column(name = "my_Column")
public String getMyColumn() {
return myColumn;
}
应用程序不会写入数据库 - 它将以只读方式使用。
如何设置才能发挥作用?我们尝试过@Type
具有各种值的注释但没有成功。
编辑:
事实证明我真正的问题是hibernate.globally_quoted_identifiers=true
columnDefinition
的属性(property)无法使用,我认为这不是做这些事情的正确方法。被指向columnDefinition
后再次解决方案我投入更多精力找出它对我们不起作用的原因,并删除此属性使其按照建议对我们起作用。
最佳答案
将 columnDefinition
添加到您的 @Column
注释中。请参阅this回答。
关于java - MSSQL 中的 Hibernate 字符串到 char(32) 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827725/