Ana sorgum modelde şöyle görünüyordu:
@NamedQuery(name = "getAllCentralFinancialAgencyAccountCd",
query = "select distinct i from CentralFinancialAgencyAccountCd i")
Ve hala "farklı" olarak düşündüğüm sonuçları alamıyordum. Tablodaki birincil anahtar kombinasyonuna dayalı olarak sadece farklıydılar.
Böylece DaoImpl
bir satır değişikliği ekledim ve istediğim "farklı" getiriyi elde ettim. Bir örnek 00'ı dört kez görmek yerine şimdi sadece bir kez görüyorum. İşte eklediğim kod 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;
}
Umarım bu yardımcı olmuştur! Bir kez daha, bu yalnızca projenin hizmet, dao ve model türünü uygulayan kodlama uygulamalarını takip ediyorsanız işe yarayabilir.