Hibernate @Embeddable с условием @Where - PullRequest
0 голосов
/ 01 марта 2020

У меня есть спящий класс, как показано ниже:

public Entity
{
   private _Enum type1;
   private String type1Name;

   private _Enum type2;
   private String type2Name;

   @Where(clause="flag=true")
   @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, orphanRemoval = true)
   private List<Item> type1List;

   @Where(clause="flag=false")
   @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, orphanRemoval = true)
   private List<Item> type2List;
}

public Class Item
{
   private Long id;
   private String name;
   // flag = true -> It is type1 item.
   // flag = false -> It is type2 Item.
   private boolean flag;
}

Здесь; type1 и type2 выглядят похоже, поэтому я хочу преобразовать их в объект @embeddable:

public Entity
{
    @Embedded
    @AttributeOverrides({
        @AttributeOverride(name = "type", column = @Column(name = "type1")),
        ...
   })
   private EntityItem restrictionItem;

   @Embedded
   @AttributeOverrides({
        @AttributeOverride(name = "type", column = @Column(name = "type2")),
        ...
   })
   private EntityItem applyItem;
}
@Embeddable
public EntityItem
{
   private _Enum type;
   private String name;
   @Where ?
   private List<Item> list; //?
}

Но здесь я не мог знать, как обработать условие @Where для объекта @Embeddable. Есть ли способ справиться с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...