如何在 JPA 中解析 "illegal use of LONG datatype"
how to resolve "illegal use of LONG datatype" in JPA
我正在将 Hql 查询转换为 jpql 但出现错误 非法使用 LONG 数据类型
String jpqlQuery="select entity "+
"FROM Entity entity "+
"WHERE CAST(SUBSTRING(entity.nameId,2,12) AS long) >CAST( :String1 AS long) "+
"AND CAST(SUBSTRING(entity.nameId,2,12) AS long)<= CAST( :String2 AS long) ";
所以谁能知道如何在 jpql 中为上述查询转换 as long 吗?
- 尝试使用
decimal
或 NUMERIC
而不是 long
:
像这样
CAST(SUBSTRING(entity.nameId, 2, 12) AS DECIMAL(2,12))
- 并且不要传递字符串并将其转换为查询,而是可以在将其传递给查询之前对其进行转换:
例如:
String jpqlQuery = "select entity "+
"FROM Entity entity "+
"WHERE CAST(SUBSTRING(entity.nameId, 2, 12) AS DECIMAL(2,12)) > value1 "+
"AND CAST(SUBSTRING(entity.nameId, 2, 12) AS DECIMAL(2,12)) <= value2 ";
Query query = session.createQuery(jpqlQuery);
query.setParametter("value1", Long.valueOf(value1));
query.setParametter("value2", Long.valueOf(value2));
我正在将 Hql 查询转换为 jpql 但出现错误 非法使用 LONG 数据类型
String jpqlQuery="select entity "+
"FROM Entity entity "+
"WHERE CAST(SUBSTRING(entity.nameId,2,12) AS long) >CAST( :String1 AS long) "+
"AND CAST(SUBSTRING(entity.nameId,2,12) AS long)<= CAST( :String2 AS long) ";
所以谁能知道如何在 jpql 中为上述查询转换 as long 吗?
- 尝试使用
decimal
或NUMERIC
而不是long
:
像这样
CAST(SUBSTRING(entity.nameId, 2, 12) AS DECIMAL(2,12))
- 并且不要传递字符串并将其转换为查询,而是可以在将其传递给查询之前对其进行转换:
例如:
String jpqlQuery = "select entity "+
"FROM Entity entity "+
"WHERE CAST(SUBSTRING(entity.nameId, 2, 12) AS DECIMAL(2,12)) > value1 "+
"AND CAST(SUBSTRING(entity.nameId, 2, 12) AS DECIMAL(2,12)) <= value2 ";
Query query = session.createQuery(jpqlQuery);
query.setParametter("value1", Long.valueOf(value1));
query.setParametter("value2", Long.valueOf(value2));