Hibernate의 Criteria API에서 값 유형 컬렉션 쿼리
문제
내 데이터베이스에는 엔터티 테이블이 있습니다(엔티티라고 부르겠습니다).각 엔터티에는 여러 엔터티 유형이 있을 수 있으며 엔터티 유형 집합은 정적입니다.따라서 엔터티 ID와 엔터티 유형 이름의 행을 포함하는 연결 테이블이 있습니다.내 코드에서 EntityType은 열거형이고 Entity는 Hibernate 매핑 클래스입니다.
엔터티 코드에서 매핑은 다음과 같습니다.
@CollectionOfElements
@JoinTable(
name = "ENTITY-ENTITY-TYPE",
joinColumns = @JoinColumn(name = "ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
return entityTypes;
}
아, 제가 주석을 사용하고 있다고 말씀드렸나요?
이제 제가 하고 싶은 작업은 HQL 쿼리를 생성하거나 특정 엔터티 유형의 모든 엔터티 개체에 대해 기준을 사용하여 검색하는 것입니다.
이것 Hibernate 포럼의 페이지에서는 이것이 불가능하다고 말하지만 이 페이지는 18개월이 된 페이지입니다.이 기능이 Hibernate의 최신 릴리스 중 하나에 구현되었는지 또는 향후 릴리스에 계획되어 있는지 알려주실 수 있습니까?
해결책
HQL:
select entity from Entity entity where :type = some elements(entity.types)
다음과 같이 작성할 수도 있다고 생각합니다.
select entity from Entity entity where :type in(entity.types)
다른 팁
귀하의 관계는 양방향입니까? EntityType
가지고 있다 Entity
재산?그렇다면 아마도 다음과 같은 일을 할 수 있을 것입니다. entity.Name from EntityType where name = ?
제휴하지 않습니다 StackOverflow