Я использую EL, и я продолжаю получать 0, когда я запускаю запрос ниже. Я хочу получить счетчик заявлений (AP), которые в настоящее время активны. Заявитель дочернего объекта принадлежит человеку, и я хочу избежать запроса всех элементов 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(). –