jpql将string比较为int

时间:2014-06-17 12:58:38

标签: java jpa db2 jpql

我有一个名为info

的对象
class info
@Column(name="id")
int id
@Column(name="system")
string system
@Column(name="triesErrCount")
string triesErrCount

和DB中的相同类型。 现在triesErrCountString(在类和DB(varchar)中),但在我的数据库中,它们都是数字(“1”,“7”,“56”......)。 / p>

我试着让所有小于50的信息,我试试这个:

SELECT x from PaymentInfo x where x.triesErr <=:triesErrAsString

在jpql中尝试ErrAsString =“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

1 个答案:

答案 0 :(得分:1)

字符串不是Int,因此数字比较不会像您期望的那样工作。您需要将字符串转换为数字才能使用数字运算符。有关如何在JPQL中执行此操作的示例,请参阅CAST ,但最好将数据库中的类型更改为数字类型。