Мой основной запрос выглядел так в модели:
@NamedQuery(name = "getAllCentralFinancialAgencyAccountCd",
query = "select distinct i from CentralFinancialAgencyAccountCd i")
И я все еще не получал то, что считал «отличными» результатами. Они были просто различны, основываясь на комбинации первичных ключей в таблице.
Итак, в DaoImpl
я добавил изменение в одну строку и в итоге получил «отчетливый» возврат, который хотел. Например, вместо того, чтобы видеть 00 четыре раза, я теперь просто вижу это один раз. Вот код, который я добавил к DaoImpl
:
@SuppressWarnings("unchecked")
public List<CacheModelBase> getAllCodes() {
Session session = (Session) entityManager.getDelegate();
org.hibernate.Query q = session.getNamedQuery("getAllCentralFinancialAgencyAccountCd");
q.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // This is the one line I had to add to make it do a more distinct query.
List<CacheModelBase> codes;
codes = q.list();
return codes;
}
Надеюсь, это помогло! Еще раз, это может работать, только если вы следуете правилам кодирования, которые реализуют сервис, дао и тип модели проекта.