具有无效函数 Postgresql 的 Hibernate 5.2 本机查询
Hibernate 5.2 Native Query with void function Postgresql
我是 hibernate 的初学者。
我在 PostgreSQL 中有一个带有 10 个参数的 void 函数(它是一个 "create or update" 函数),我想在我的应用程序中使用它。
我读到做原生查询是最简单的方法。
所以我写了这段代码:
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
String a = "SELECT fun('text', 'text', 12345678987, 'text', 'text', 50, 37500, 133456788, 'text', 2);
session.createNativeQuery(a);
session.getTransaction().commit();
session.close();
应用程序启动时没有任何错误,但是当我检查数据库时没有新记录。
谁能解释一下哪里出了问题?我应该对该功能做些其他事情吗?
When I check database I don't have new rekord
Ofc 你不这样做,你正在做 SELECT
,所以你没有在你的数据库中做任何事情。
此外,为了执行您的查询,您不需要打开任何交易,因为您 inserting/updating/deleting 什么都不是,您需要执行以下操作以获得结果:
session.createNativeQuery(a).getResultList()
如果您希望从该查询中获得多个结果
session.createNativeQuery(a).getSingleResult()
如果您希望只有一个结果。
session.createNativeQuery(a).executeUpdate()
如果您实际上是 inserting/updating/deleting 某物,在这种情况下,您将需要像在代码中那样进行交易。
当您调用 session.createNativeQuery(a)
时,它会创建一个查询,但在您调用本机查询的 executeUpdate()
方法之前不会执行它。
我是 hibernate 的初学者。 我在 PostgreSQL 中有一个带有 10 个参数的 void 函数(它是一个 "create or update" 函数),我想在我的应用程序中使用它。
我读到做原生查询是最简单的方法。
所以我写了这段代码:
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
String a = "SELECT fun('text', 'text', 12345678987, 'text', 'text', 50, 37500, 133456788, 'text', 2);
session.createNativeQuery(a);
session.getTransaction().commit();
session.close();
应用程序启动时没有任何错误,但是当我检查数据库时没有新记录。
谁能解释一下哪里出了问题?我应该对该功能做些其他事情吗?
When I check database I don't have new rekord
Ofc 你不这样做,你正在做 SELECT
,所以你没有在你的数据库中做任何事情。
此外,为了执行您的查询,您不需要打开任何交易,因为您 inserting/updating/deleting 什么都不是,您需要执行以下操作以获得结果:
session.createNativeQuery(a).getResultList()
如果您希望从该查询中获得多个结果
session.createNativeQuery(a).getSingleResult()
如果您希望只有一个结果。
session.createNativeQuery(a).executeUpdate()
如果您实际上是 inserting/updating/deleting 某物,在这种情况下,您将需要像在代码中那样进行交易。
当您调用 session.createNativeQuery(a)
时,它会创建一个查询,但在您调用本机查询的 executeUpdate()
方法之前不会执行它。