当前位置: 首页 > 知识库问答 >
问题:

Hibernate位置参数从零开始

蓝逸仙
2023-03-14

我正在将一个项目从Hibernate 4.2.6迁移到5.2.0。

@PersistenceContext 
private EntityManager entityManager;


Query query = entityManager.createNativeQuery("select * from Game g where title = ?");
query.setParameter(1, GAME_TITLES[0]);
List list = query.getResultList();

persistence.xml文件如下所示

<persistence-unit name="test" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/arquillian</jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
        <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
</persistence-unit>
Query query = entityManager.createNativeQuery("select * from Game g where title = ?");
query.setParameter(0, GAME_TITLES[0]);
List list = query.getResultList();

唯一的区别是setParameter中的0索引。

persistence.xml也非常相似

<persistence-unit name="test">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <jta-data-source>jdbc/arquillian</jta-data-source>
    <properties>
        <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform" />
        <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
</persistence-unit>

共有1个答案

章高朗
2023-03-14

Hibernate 5.2已经将hibernate-entitymanager模块合并到hibernate-core中,因此此问题可能发生在此过程中。

由于Hibernate 5.2.1修复了这个问题,您只需升级到5.2.1或更高版本即可。

 类似资料:
  • 本文向大家介绍从零开始学JAVA之可变参数,包括了从零开始学JAVA之可变参数的使用技巧和注意事项,需要的朋友参考一下 下面是一个简单的小程序: 其中getSum(int array[])方法的声明就限定了它只能接受一维int类型的数组。如果我们现在试图运行第十行(被注释的那行),这样肯定会出错。这种方法的声明方式特别在不知道要传入参数个数时候,缺点比较明显。 从Java5开始,出现了可变参数。特

  • 我正在使用RecyclerView,我注意到一个奇怪的行为:每次被称为记录实际位置时,我都会放一个日志,有时位置不是从零开始的,你知道为什么吗?对我来说,这是一个问题,因为在位置0,我有不同的逻辑。 那是记录器: 好吧,我知道顺序并不总是一样的,但在我的应用程序中,当我更新数据时,我注意到两个ViewHolder的布局之间有一个神秘的交换,但在我的代码中,我从未为ViewHolder分配布局。正如

  • 我正在使用Hibernate/JPA执行本机PostGIS查询。这些查询的问题在于它们需要不是经典X='value'形式的参数。 我的问题是:- 错误:- 有人知道如何解决这种情况吗?

  • 我写了原生sql查询,而不是使用hql和面对roblem 超出声明序数参数的位置。记住序数参数是基于1的!职位: 1 和DAO 我读了和hibernate使用0作为第一个索引。 堆栈跟踪 //更新 有趣的是,当我设置查询数值时 我明白了 但是在MySQL中我得到了成功的结果。 我如何决定这个问题?

  • 准备好了吗? 准备来开始我们的旅程!如果你就是那种从不看说明书的人,我推荐你还是回头看一下简介的最后一节。那里面讲了这个教学中你需要用到的工具及基本用法。我们首先要做的就是进入 ghc 的交互模式,接着就可以写几个函数体验一下 Haskell 了。打开终端机,输入 ghci,你会看到下列欢迎消息: GHCi,version6.8.2:http://www.haskell.org/ghc/ :?fo

  • 从零开始 欢迎您选择ILRuntime , 根据下面教程您可以快速的开始。 起步 在Unity2018以上版本中开始使用ILRuntime ILRuntime1.6版新增了Package Manager发布,使用Unity2018以上版本可以直接通过Package Manager安装,具体方法如下 如果你使用的是中国特别版Unity,那直接打开Package Manager即可找到ILRuntim