我有一个名为 info
的对象
class info
@Column(name="id")
int id
@Column(name="system")
string system
@Column(name="triesErrCount")
string triesErrCount
与数据库中的类型相同。
现在triesErrCount
是 String
(在类和数据库(varchar)中),但在我的数据库中,它都像数字(“1”,“7”,“56”...)。
我尝试获取小于 50 的所有信息,我尝试这样做:
SELECT x from PaymentInfo x where x.triesErr <=:triesErrAsString
triesErrAsString = jpql 中的“50”
但是不行,我也尝试一下:
class info
@Column(name="id")
int id
@Column(name="system")
string system
@Transient
string triesErrCount
@Column(name="triesErrCount")
int triesErrCountAsInt
SELECT x from PaymentInfo x where x.triesErr <=:triesErrAsInt
triesErrAsInt = 50
但仍然无法正常工作。我使用的是jpa 1.0。和 OpenJPA 1.2.1
最佳答案
字符串不是 Int,因此数字比较将无法按您的预期进行。您需要将字符串转换为数字才能使用数字运算符。请参阅CAST 有关如何在 JPQL 中执行此操作的示例,但最好将数据库中的类型更改为数字类型。
关于java - jpql 比较字符串作为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24264493/