【问题标题】:hibernate type yes_no with 'J' instead of 'Y'休眠类型 yes_no 用 'J' 而不是 'Y'
【发布时间】:2014-07-30 10:49:09
【问题描述】:

我必须将数据库中的 character(1) 字段映射到 gorm 属性。 数据库中的字段显然是“yes_no”类型,但有一个例外,“Y”应该有德语表达“J”。

有没有办法处理它,或者我应该在我的 gorm 类中使用 char 字段而不是布尔值?

提前致谢,

【问题讨论】:

    标签: java hibernate grails grails-orm


    【解决方案1】:

    正如这里所讨论的:

    我们可以使用配置设置:

    通过在 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>
    

    【讨论】:

    • 非常感谢!目前我在 grails/gorm 中定义这个设置有问题......因为我找不到这个属性文件。我认为它应该通过 groovy-syntax 定义...但不知道在哪里...
    • 对不起,我不知道 grails,也许会问不同的问题......祝你好运
    • 我现在用 Hibernate Custom-User-Type 解决了这个问题,它在代码端使用布尔类型,在数据库端使用“J”和“N”。
    【解决方案2】:

    我使用 Custom-User-Type 解决了这个问题,它在 grails/gorm 域类中使用布尔类型,在数据库端使用“J”/“N”表示。

    在下面准备了一个 github 代表:

    grails-gorm-ja_nein_type

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 2014-03-08
      • 2019-05-04
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多