HQL通过隐式多态性仅选择一些子类实体

时间:2016-04-18 14:47:28

标签: java hibernate hql

我的项目中有一个根类定义为:

@Entity
@Table(name = "entities")
@Inheritance(strategy=InheritanceType.JOINED)
public class CommonEntity implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "entity_id", unique = true, nullable = false)
    private Long id

}

我还有其他几个继承它的类,比如用户,狗(不要问:P),评论,图片,imageGlaeries,......

我需要一种从CommonEntity表中选择对象的方法,但是我只获得属于四个指定子类的那些对象。我现在正在尝试这个:

"SELECT listItem FROM CommonEntity listItem WHERE ((listItem.class='DogEntity' and listItem.isActive = true) or listItem.class='UserEntity') or (listItem.class='DogShowEntity' or listItem.class='PageEntity') ORDER BY listItem.createdTime desc"

但它不起作用。我没有宣布一个鉴别栏,我也不认为我可以制作一个鉴别栏。有没有办法使这项工作?

0 个答案:

没有答案