我有一个实体(商店),它继承自它的超类(位置)。 商店和地点拥有自己的桌子(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;