相关疑难解决方法(0)

在JPA查询中转义冒号字符':'

我正在尝试通过使用":"字符的JPA运行本机查询.特定实例在查询中使用MySQL用户变量:

SELECT foo, bar, baz, 
    @rownum:= if (@id = foo, @rownum+1, 1) as rownum, 
    @id    := foo                         as rep_id 
FROM 
    foo_table 
ORDER BY 
    foo, 
    bar desc 
Run Code Online (Sandbox Code Playgroud)

JPA代码:

Query q = getEntityManager().createNativeQuery(query, SomeClass.class);
return q.getResultList();
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个例外,即不允许用空格跟随':'.我已经尝试用反斜杠逃避它们,我已经尝试通过将它们加倍来逃避它们.有没有办法真正做到这一点,还是我是SOL?

mysql jpa jpql

17
推荐指数
2
解决办法
1万
查看次数

参数前缀':'后不允许有空格

我的问题是我尝试在我的查询中插入包含char的文本

我试图在char之前添加双反斜杠//但仍然无效.

ABNORMALLY.java.lang.IllegalArgumentException: 
org.hibernate.QueryException: Space is not allowed after parameter prefix ':' 

INSERT INTO TABLE_A  (A_ID, TYPE_ID, F_ID, REFNO, RECORD) VALUES 
( A_ID_SEQ.nextval, 4 , 9 , 'NY167', q'[LA2010167|SNIP' N CLIP|LMG|1.Unit no\\: 1046, 1 st Floor, Limbang Plaza, 98700 Limbang|2010-12-10||]')
Run Code Online (Sandbox Code Playgroud)

java oracle hibernate

10
推荐指数
2
解决办法
1万
查看次数

如何在 Hibernate 中使用 Mysql 变量?

我需要在 Hibernate 中使用本机 sql 查询并使用变量。

但是hibernate抛出一个错误说:参数前缀后不允许有空格

所以:= mysql变量赋值和hibernate变量赋值有冲突。

这是我的sql查询:

SET @rank:=0; 
UPDATE Rank SET rank_Level=@rank:=@rank+1 ORDER BY Level;
Run Code Online (Sandbox Code Playgroud)

hibernate代码(jpa语法):

Query query = em.createNativeQuery(theQuery);
query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

我无法使用存储过程,因为我的 sql 查询是动态生成的(“Level”可以是“int”或“force”...)

我怎样才能做到这一点 ?

谢谢

mysql variables hibernate conflict

3
推荐指数
1
解决办法
8446
查看次数

如何使用Session Factory从Java Hibernate执行sql存储过程?

我无法使用会话工厂从java hibernate调用我的存储过程

我编写了一个sql过程,它接受5个参数并返回一个在MS SQL studio中正常工作的结果集

EXEC SlaGrid @appID=245,@fromYear=2012,@toYear=2013,@fromMon=1,@toMon=12   --- sql

EXEC SlaGrid @applID=:applID,@fromYear=:fromYear,@toYear=:toYear,@fromMon=:fromMon,@toMon=:toMon  --hibernate
Run Code Online (Sandbox Code Playgroud)

我正在设置上述查询的参数

String queryString = "EXEC SlaGrid @applID=:applID,@fromYear=:fromYear,@toYear=:toYear,@fromMon=:fromMon,@toMon=:toMon"

Query query = sessionFactory.getCurrentSession().createSQLQuery(queryString);

//set query parameters here

query.list()    --- giving sql grammer exception
Run Code Online (Sandbox Code Playgroud)

java sql spring stored-procedures hibernate

2
推荐指数
2
解决办法
4万
查看次数

标签 统计

hibernate ×3

java ×2

mysql ×2

conflict ×1

jpa ×1

jpql ×1

oracle ×1

spring ×1

sql ×1

stored-procedures ×1

variables ×1