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;
}
它實際上不是一個布爾字段我想將它設置爲「是」或「否」,但它可能不是一個很好的事情時,我可以使用真或假。我會立即嘗試這個查詢。謝謝 – Warz
得到這個實體經理的計數,我應該使用getFirstResult()? – Warz
不可以。您應該使用getSingleResult():http://docs.oracle.com/javaee/6/api/javax/persistence/Query.html#getSingleResult%28%29。 getFirstResult()返回setFirstResult()設置的內容。 –