Я получаю ошибку, когда данные должны быть получены из базы данных. У меня есть сопоставления в hibernate.cfg.xml, который загружен и аннотации Entity на боб.
@Override
public List<Korisnik> dohvatiSveZaposlene() {
return new HibernateTransactionCallable<List<Korisnik>>() {
@Override
public List<Korisnik> doInTransaction() {
final Query query = getSession().createQuery("from Korisnik k where k.tip = :tip");
query.setInteger("tip", TipKorisnika.ZAPOSLENI.ordinal());
final List<Korisnik> zaposleni = query.list();
for (Korisnik korisnik : zaposleni)
inicijalizujPodatkeIzHibernateSesije(korisnik);
return zaposleni;
}
}.call();
}
И еще один метод:
private void inicijalizujPodatkeIzHibernateSesije(Korisnik korisnik) throws HibernateException {
Hibernate.initialize(korisnik.getAngazovanjaKaoAsistent());
Hibernate.initialize(korisnik.getAngazovanjaKaoNastavnik());
Hibernate.initialize(korisnik.getPublikacije());
Hibernate.initialize(korisnik.getObavestenja());
Hibernate.initialize(korisnik.getIzabraniPredmeti());
for (final Publikacija publikacija : korisnik.getPublikacije()) {
Hibernate.initialize(publikacija.getAutoriSaKatedre());
Hibernate.initialize(publikacija.getAutoriVanKatedre());
}
}
Ошибка - Корисник не сопоставлен.
<mapping class="rs.ac.bg.etf.dao.beans.Korisnik"/>
Все это работало несколько лет назад с сервером Glassfish, но теперь нет.
Отображение на класс Корисник
@Entity
public class Korisnik implements Serializable {
...
И исходный код Hibernate:
private static final SessionFactory factory;
static {
try {
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
factory = configuration.buildSessionFactory(serviceRegistry);
} catch (HibernateException ex) {
System.err.println("Failed to create sessionFactory object." + ex);
throw new ExceptionInInitializerError(ex);
}
}