Из-за этого изменения мне теперь нужно будет реорганизовать ВСЕ мои запросы, чтобы получать строку только в том случае, если статус АКТИВЕН.
После некоторых исследований я обнаружил, что мы может аннотировать объект аннотацией @Where. он отлично работает там, где я использую его для простого столбца, но моя таблица выглядит так:
Код: Выделить всё
@Where(clause = 'state='ACTIVE'")
@Entity
public class Place {
@Column(name="id_place")
private String placeId;
@Column(name="name")
private String palceName;
@OneToMany(mappedBy = "place")
private Set
placeTag;
...
...
}
@Where(clause = 'state='ACTIVE'")
@Entity
public class Tag {
@Column(name="id_tag")
private String tagId;
@Column(name="name")
private String tagName;
@OneToMany(mappedBy = "tag")
private Set placeTag;
...
...
}
@Where(clause = 'poi.state='ACTIVE' AND tag.state='ACTIVE")
@Entity
public class PlaceTag {
@Column(name="id")
private String id;
@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
@JoinColumn(name = "place_id")
private Place place;
@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
@JoinColumn(name = "tag_id")
private Tag tag;
...
...
}
Код: Выделить всё
SELECT pt FROM PlaceTag pt;
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/271 ... e-relation