【发布时间】:2014-07-30 10:49:09
【问题描述】:
我必须将数据库中的 character(1) 字段映射到 gorm 属性。 数据库中的字段显然是“yes_no”类型,但有一个例外,“Y”应该有德语表达“J”。
有没有办法处理它,或者我应该在我的 gorm 类中使用 char 字段而不是布尔值?
提前致谢,
【问题讨论】:
标签: java hibernate grails grails-orm
我必须将数据库中的 character(1) 字段映射到 gorm 属性。 数据库中的字段显然是“yes_no”类型,但有一个例外,“Y”应该有德语表达“J”。
有没有办法处理它,或者我应该在我的 gorm 类中使用 char 字段而不是布尔值?
提前致谢,
【问题讨论】:
标签: java hibernate grails grails-orm
正如这里所讨论的:
我们可以使用配置设置:
通过在 Hibernate 配置中声明 HQL 查询替换,可以在表达式中轻松使用布尔值:
<property name="hibernate.query.substitutions">true 1, false 0</property>这会将关键字 true 和 false 替换为来自此 HQL 的已翻译 SQL 中的文字 1 和 0:
from Cat cat where cat.alive = true
据我所知,这些选项之一应该是:
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
所以你应该试试:
<property name="query.substitutions">true 1, false 0, yes 'J', no 'N'</property>
【讨论】:
我使用 Custom-User-Type 解决了这个问题,它在 grails/gorm 域类中使用布尔类型,在数据库端使用“J”/“N”表示。
在下面准备了一个 github 代表:
【讨论】: