1
@Embeddable을 CriteriaBuilder와 함께 사용하여 포함 된 속성을 기반으로 상위 엔터티의 결과를 필터링하려고합니다. Eclipse Link를 사용하여 Metadata 클래스를 생성합니다.포함 된 개체에 Cirteria Builder 사용
@Entity(name = "Message")
public class Message implements Serializable {
@Embedded
private Stamp stamp = new Stamp();
이제이 코드에 기초하여 메시지 클래스 및 필터링 결과를 사용한다 :
@Embeddable
public class Stamp implements Serializable {
@Basic()
@Column(name = "stamp_year", nullable = false)
private int year;
상위 클래스 구성원으로 스탬프가 여기
임베디드 클래스/실체 임베디드 클래스 속성 연도 :CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Message> cq = cb.createQuery(Message.class);
Root<Message> root = cq.from(Message.class);
Predicate p = cb.conjunction();
p = ??????
cq.where(p);
TypedQuery<Message> tq = em.createQuery(cq);
List<Message> messages = tq.getResultList();
5 번 줄에서 메시지 -> 스탬프 -> Y 검색어의 귀 요소는 무엇입니까?
@StaticMetamodel(Message.class)
public class Message_ {
public static volatile SingularAttribute<Message, Stamp> stamp;
과 :
@StaticMetamodel(Stamp.class)
public class Stamp_ {
public static volatile SingularAttribute<Stamp, Integer> year;
참고 : 여기
생성 된 메타 모델 클래스이다 나는 GitHub에 볼 수 있습니다 코드 명확하지만, 전체 코드에 대한 모든 관련이없는 정보를 제거 : prototype