问题标签 [native-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
853 浏览

java - 使用休眠获取两个时间戳差异的平均值

我想计算一个实体的两个时间戳字段的时间差的平均值,这样;实体具有 start_date 和 finish_date 属性。在 SQL 中,它类似于以下内容:

当我尝试在休眠中将其作为本机 sql 运行时:

它抛出了一个异常:

这可能非常微不足道,但我找不到解决方案。如果有使用 Hibernate API(限制、投影等)的解决方案,它将非常有用。

已编辑:我刚刚意识到 postgresql 返回 INTERVAL 数据类型,这对于 JDBC 是未知的。我认为唯一的解决方案是重写这个以毫秒为单位返回结果的 SQL(作为数字)。但是,我不知道怎么做?

0 投票
2 回答
12732 浏览

java - 如何为纯 JPA 中的本机查询配置默认数据库模式?

我们的情况如下:

  • 我们在企业应用程序中使用(必须是纯的)JPA 来实现持久性。
  • 由于性能原因,我们在这里和那里使用了许多相当复杂的本机查询。
  • 在访问数据库(Oracle 11g)时,我们使用APP_ACCESS不同于表“所有者”的数据库用户(APP_OWNER)。这是来自数据库管理的硬性要求。
  • 目前,模式名称 ( APP_OWNER) 被硬编码到本机查询中,a-la:

"SELECT * FROM " + DatabaseSchemaConstants.SCHEMA_NAME + ".LOCATION"

不用说,我们对这种硬编码并不特别满意,因为“所有者”用户名的更改将意味着代码的更改——这绝对不利于维护。

所以这是我的问题:

我们如何为纯 JPA 中的本机查询配置默认数据库模式?

这是我到目前为止发现的:

如何在 JPA 配置中设置默认模式名称?

具体来说,这个答案提出了持久性单元和orm.xml文件的组合:

但我认为这不适用于本机查询(我们目前正在测试它)。这里的另一个问题是这orm.xml并不是真正的配置。(但它仍然比 Java 代码中的硬编码好)。

另一个类似答案的帖子:

JPA - EclipseLink - 如何更改默认模式

另一个问题:

从会话工厂以编程方式获取休眠默认模式名称?

请参阅这个建议使用的答案{h-schema}。看起来很合适,但它是特定于 Hibernate 的。我们想继续使用“纯 JPA”。另一个问题是我在 Hibernate 文档中找不到任何提及 {h-schema} 的地方,所以我们依赖这个特性是不安全的。

是否有标准的 JPA 方法来为所有内容设置默认数据库模式 - JPA 实体和查询以及本机查询

或者,如果我们能够在本地查询的配置中使用某些“参数”或“设置”设置,则可以解决此问题。

0 投票
0 回答
1403 浏览

java - 无法使用 Hibernate 创建临时表

我无法使用休眠创建临时表这是我的代码

在日志中它显示命令正在运行但是当我从表中选择内容时它说表 sage_temp_table 不存在因此没有创建并且没有给出任何错误。这里是日志

当我从 queryString1 表中删除 TEMPORARY 并创建插入时,这里还有另一种情况。请告诉我它有什么问题?

0 投票
1 回答
3583 浏览

java - Spring data - 根据之前的插入插入数据

我需要将数据保存到 2 个表中(一个实体和一个关联表)。我只是使用save()我的实体存储库中的方法保存我的实体。然后,为了表演,我需要将行插入到本机 sql的关联表中。这些行对我之前保存的实体有参考。问题来了:我得到一个关于外键的完整性约束异常。在第二个查询中不知道第一个保存的实体。

这是我的代码:

回购:

服务 :

这两个查询似乎在不同的事务中,而我设置了@Transactionnal注释。我还尝试使用 an 执行我的第二个查询entityManager.createNativeQuery()并得到相同的结果...

0 投票
2 回答
463 浏览

spring - 如何在单个事务中管理 2 个 DAO 方法?

我需要在一个事务中管理 2 个 Dao 方法,其中任何一个失败都应该回滚另一个。调用方法在服务层。Spring 和 Hibernate 原生 sql 查询中使用的技术。有没有办法做到这一点?
调用方法:: @Transactional(propagation= Propagation.REQUIRED) public String save(AllowFileTypesForm formBeanObj,Hashtable global)

调用方法1::

与此方法类似,还有另一种方法可以从其他表中删除数据。

0 投票
1 回答
702 浏览

c# - 使用实体框架的原生 sql 没有实体类

我有一个本机 sql 查询,它会根据用户选择动态变化。
代码

temp 变量包含根据用户选择获得的表名。如何在不使用 between.sqlquery<> 的实体类的情况下获取记录?有没有其他方法来获取记录?

注意:动态表在实体模型中不可用。它仅在 db 中可用

0 投票
1 回答
3731 浏览

java - 为什么要使用 Hibernate Query addScalar 方法?

我在本机 sql 中有一个查询,例如:

查询结果可用于设置员工对象。在类似的行上,我有相同的查询附加了 addscalar(entity_colname)。

这里我们也必须以类似的方式获得结果,那么使用 addscalar 有什么好处?

问候杰伊

0 投票
3 回答
4007 浏览

sql - 从oracle数据库中选择n条记录

我必须使用本机 sql 从 sap 的 oracle 数据库中选择 n 行。在开放的 sql 中,查询就像

我从其他帖子中学到的等效本机 sql 查询将是

这个对吗?

我是否需要将 rownum 作为数据库表中的字段之一?

0 投票
0 回答
3076 浏览

java - org.hibernate.MappingException:没有 JDBC 类型的方言映射:1111 用于带有自定义 JsonPostgreSQLDialect 的 jsonobject

1) 我通过扩展 PostgreSQL9Dialect 添加了自定义方言,它执行 this.registerColumnType(Types.JAVA_OBJECT, "jsonb");

2) 公共类 JSONObjectUserType 实现 UserType { }

3) 属性名称="xxxx" 类型="org.JSONObjectUserType" 长度="1000"

4) 我运行休眠原生 SQL 查询。

SQLQuery query1 = (SQLQuery) session.createSQLQuery(str.toString());

它为 JDBC 类型提供 No Dialect 映射:1111. str = "Select state from X"

Postgresql - 列状态是 jsonb 类型。

0 投票
1 回答
809 浏览

symfony - Symfony2 错误:Doctrine\ORM\EntityManager 类的对象无法转换为字符串

我有 2 个不相关的实体:外部和内部。我需要联合选择来自实体的所有结果。我正在使用 ResultSetMapping 和 Native SQL 来执行此操作:

我不断收到此错误:可捕获的致命错误:Doctrine\ORM\EntityManager 类的对象无法转换为字符串。

需要修复什么?