首页 > 解决方案 > 仅在某些特定条件下加载表 (@Where)

问题描述

我要做的是只加载promotion.enabled = 1 AND PromotionType.enabled = 1的促销活动。我尝试@Where在两个表中添加注释,但是当我将promotionType, enabled 设置为0 时出现错误。另一方面,我也尝试将@WhereJoinTable子句添加到promotionType,但我没有得到预期的结果。有什么帮助吗?

第一个:

@Entity
@Table(name = "HOTEL_PROMOTION")
@Where(clause = "enabled=1")
public class Promotion implements Serializable {

    private static final long serialVersionUID = 257070400893576505L;

    @Id
    @Column(name = "PROMOTION_ID")
    private Long id;

    @Column(name = "CODE")
    private String code;

    @Column(name = "NAME")
    private String name;

    @Column(name = "PRIORITY")
    private Long priority;

    @ManyToOne
    @JoinColumn(name = "PROMOTION_TYPE_ID")
    @WhereJoinTable(clause = "enabled=1")
    private PromotionType promotionType;

    @Column(name = "ENABLED")
    private Boolean enabled;
}

第二个:

@Entity
@Table(name = "HOTEL_PROMOTION_TYPE")
public class PromotionType implements Serializable {

    private static final long serialVersionUID = -8359165117733458987L;

    @Id
    @Column(name = "PROMOTION_TYPE_ID")
    private Long id;

    @Column(name = "CODE")
    private String code;

    @Column(name = "NAME")
    private String name;

    @Column(name = "STYLE")
    private String style;

    @Column(name = "ENABLED")
    private Boolean enabled;
}

标签: jpa

解决方案


推荐阅读