Я настроил этот простой запрос Hibernate, но он ничего не возвращает, вот мой код:
EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("timereg");
EntityManager em = emf.createEntityManager();
int id = em.createQuery("SELECT emp.id FROM Employee as emp WHERE emp.bsn = '398723916'").getFirstResult();
object.getEmployee().setId(id);
System.out.println("query returns employee id: " + id);
Глупо то, что id остается нулевым, но когда я выполняю этот запрос в PostgreSQL, он возвращает 37.
Я думаю, что hibernate не нравится мой способ реализации запроса выбора, кто-нибудь знает, что не так с моим запросом выбора?
ОТВЕТ:
В запросе выбора не было ничего плохого, мне просто нужно было использовать getSingeResult () вместо getFirstResult ();
Измените код на:
EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("timereg");
EntityManager em = emf.createEntityManager();
Object ob = em.createQuery("select id from Employee where bsn = '398723917'").getSingleResult();
object.getEmployee().setId(Integer.parseInt(ob.toString()));
System.out.println(ob);
Это полное решение моей проблемы, но Янфля вдохновила меня, поэтому он заслуживает всех кредитов.