Hibernate"其中" -annoation in inherit class

时间:2017-11-08 10:11:21

标签: java hibernate inheritance where

我有一个实体(商店),它继承自它的超类(位置)。 商店和地点拥有自己的桌子(InheritanceType"已加入")。

该位置具有属性(有效)。

在另一个实体中,我有一个商店列表(OneToMany-relationship)。这些列表应仅包含活动商店。 我用

注释了它
@Where(clause="active = 'Y'")

但它不起作用:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'stores0_.active' in 'where clause'

因为表"存储"没有" active" -property,它的父母有(这是一个自己的表)。是否存在where-annotation的父选择器,还是有更好的解决方案?

位置:

@Entity
@Table(name = "locations")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Location {
    [..]

    @Column(name = "active")
    @Type(type = "yes_no")
    private Boolean isActive;

商店:

@Entity
@Table(name = "store")
@PrimaryKeyJoinColumn(name="id", referencedColumnName= "id")  
public class Store extends Location {

    [..]
    @ManyToOne()
    @JoinColumn(name = "shop_id")
    private Shop shop;

商店:

@Entity
@Table(name = "shop")
@PrimaryKeyJoinColumn(name = "id", referencedColumnName = "id")
public class Shop extends Location {
    [...]



    @Where(clause="active = 'Y'")
    @OneToMany(mappedBy ="shop")
    private List<Store> stores;

0 个答案:

没有答案