수색…


제한 사항을 사용하여 목록

City 이름이 "title"인 TravelReview 테이블이 있다고 가정합니다.

 Criteria criteria =
    session.createCriteria(TravelReview.class);
  List review =
    criteria.add(Restrictions.eq("title", "Mumbai")).list();
  System.out.println("Using equals: " + review);

기준에 다음과 같이 연결하여 제한을 추가 할 수 있습니다.

List reviews = session.createCriteria(TravelReview.class)
   .add(Restrictions.eq("author", "John Jones"))
   .add(Restrictions.between("date",fromDate,toDate))
   .add(Restrictions.ne("title","New York")).list();

투영법 사용하기

컬럼을 몇 개만 가져 오려면 Projections 클래스를 사용할 수 있습니다. 예를 들어, 다음 코드는 title 열을 검색합니다.

 // Selecting all title columns
  List review = session.createCriteria(TravelReview.class)
        .setProjection(Projections.property("title"))
    .list();
  // Getting row count
  review = session.createCriteria(TravelReview.class)
    .setProjection(Projections.rowCount())
    .list();
  // Fetching number of titles
  review = session.createCriteria(TravelReview.class)
    .setProjection(Projections.count("title"))
    .list();

필터 사용

@FilterWHERE 캠프로 사용됩니다. 여기에 몇 가지 예가 있습니다.

학생 실체

@Entity
@Table(name = "Student")
public class Student
{
    /*...*/

    @OneToMany
    @Filter(name = "active", condition = "EXISTS(SELECT * FROM Study s WHERE state = true and s.id = study_id)")
    Set<StudentStudy> studies;

    /* getters and setters methods */
}

학습 실체

@Entity
@Table(name = "Study")
@FilterDef(name = "active")
@Filter(name = "active", condition="state = true")
public class Study
{
    /*...*/

    @OneToMany
    Set<StudentStudy> students;

    @Field
    boolean state;

    /* getters and setters methods */
}

StudentStudy Entity

@Entity
@Table(name = "StudentStudy")
@Filter(name = "active", condition = "EXISTS(SELECT * FROM Study s WHERE state = true and s.id = study_id)")
public class StudentStudy
{
    /*...*/

    @ManytoOne
    Student student;

    @ManytoOne
    Study study;

    /* getters and setters methods */
}

이렇게하면 "활성"필터가 활성화 될 때마다,

- 학생 단체에서하는 모든 질문은 모든 학생에게 state = true 연구 반환 state = true

- 우리가 연구 기관에서하는 모든 질문은 모든 state = true 연구를 반환 state = true

우리가 StudentStudy의 entiy에서 할 -Every 쿼리는 사람을 반환합니다 state = true 연구 관계

Pls는 study_id가 SQL StudentStudy 테이블의 필드 이름임을 참고합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow