java - 使用特定子类查找行的条件查询

标签 java hibernate criteria table-per-subclass

我将从一个经过净化的示例开始。

在我的系统中,我有 Car 类。 Car 有很多字段,其中有 GearShift 类的 gearShift 实例。

public class Car {
    private GearShift gearShift;

    // Snip
}

GearShift 是一个抽象类,AutomaticShift 和StickShift 继承自该类。这在 Hibernate 中映射为每个子类一个表。

现在,假设我想购买配备自动变速装置的汽车。我更喜欢通过 Hibernate 标准来执行此操作,因此我设想了一个我可以添加的“ofType”限制,如下所示。

getSession().createCriteria(Car.class)
    .add(Restrictions.ofType(AutomaticShift.class)
    .list();

这有可能吗?

最佳答案

旧:

这个怎么样?

getSession().createCriteria(AutomaticShift.class).list()

编辑:

这应该可以解决问题;

getSession().createCriteria(Car.class).createAlias("gearShift", "gs").add(Restrictions.eq("gs.class", AutomaticShift.class)).list();

关于java - 使用特定子类查找行的条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10702998/

相关文章:

java - 从字节/帧 Java/Android 创建可播放的视频流

java - 我不明白如何使用@MapKey

java - spring hibernate 5 错误已经值 [org.springframework.orm.hibernate5.SessionHolder for key bind to thread

performance - NHibernate HQL vs CriteriaAPI vs QueryOver vs Linq。表现

java - 如何使用标准中的限制来限制结果数据

java - double 和 Double 比较的区别

java - @PicketLink 注释类未在 identity.login() 中使用

java - 使用 hibernate 标准,有没有办法转义特殊字符?

java - 如何在 Java 中将十六进制字符串转换为 float ?

java - JPA:如何急切地获取嵌入式元素集合