0
EL을 사용하고 있으며 아래 쿼리를 실행할 때 0이 계속됩니다. 현재 활동중인 지원자 (AP)의 수를 얻고 싶습니다. 하위 엔티티 신청자는 Person이고 Person의 모든 요소를 쿼리하지 않으려합니다.JPA EclipseLink getCount 하위 엔티티
@RooJavaBean
@RooToString
@RooEntity(identifierColumn = "personID", inheritanceType = "SINGLE_TABLE")
@DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.STRING, length = 20)
@DiscriminatorValue("P")
public class Person {
@NotNull
@Size(min = 1, max = 50)
private String FirstName;
@NotNull
@Size(min = 1, max = 50)
private String LastName;
}
아이 엔티티 '신청자'
@RooJavaBean
@RooToString
@RooEntity
@DiscriminatorValue("AP")
public class Applicant extends Person{
private String major;
private String nativeLanguage;
private String ethnicity;
private String hispanic;
}
내 쿼리 시도 :
/**
*
* @return
*/
public int getCountActiveApplicants(){
EntityManager entityManager = factory.createEntityManager();
int value = entityManager.createQuery("select count(distinct o) from Person o where o.TYPE = \"AP\" AND o.active = \"Yes\" ").getFirstResult();
System.out.println("wowzer " + value + "\n");
return value;
}
그것을 내가 '예'로 설정하고 싶었 또는 '아니오'하지만 아마 좋은 일 때 실제로되지 부울 필드 전 true 또는 false를 사용할 수 있습니다. 나는 지금이 쿼리를 시도 할 것이다. 감사 엔 – Warz
이 엔티티 관리자에서 카운트를 얻으려면 getFirstResult()를 사용해야합니까? – Warz
아니요. getSingleResult()를 사용해야합니다. http://docs.oracle.com/javaee/6/api/javax/persistence/Query.html#getSingleResult%28%29. getFirstResult()는 setFirstResult()에 의해 설정된 내용을 반환합니다. –