有没有办法在HQL中转义“大小”属性名称?

时间:2016-02-17 14:39:18

标签: java hibernate

考虑像这样的Cat实体(伪代码):

@Entity
class Cat {
    @Id
    Long id;

    @Column
    String name;

    @Column
    String size; /* may be "BIG", "SMALL", "TINY" see (1) */

    @OneToMany
    List<Cat> offsprings;
}

此HQL查询,按'TINY'大小的小猫搜索

from Cat c join c.offsprings o where o.size = 'TINY'

会爆炸

  

错误:整数的输入语法无效:“TINY”

因为size是一个特殊的属性名称,在这种情况下,它会计算猫的后代的数量。

在这样的场景中,有没有一种正确的方法可以让Hibernate将o.size(或可能o.class和其他人)视为常规属性名称?

(1)我不是这个令人遗憾的设计的作者,也不是宽恕它。但是,我现在无法修改它。

0 个答案:

没有答案