我有一个hqlquery文件,其中包含大约800个查询。在运行时检测到要在中执行的查询,并Map从浏览器传递的参数,默认情况下,我的代码将从浏览器传递的参数转换为long。问题是在某些bean类中,变量(即比较的左侧)是int,在某些情况下是long。但在运行时,我想不出任何方法来检测比较参数左侧的“类型”。
例如:选择*from employee e,其中e.id=$empid$
$empid$将替换为运行时从浏览器传递的值,默认情况下,我的代码将传递的值强制转换为long。如果e.id是int,那么这将抛出classcastexception。是否有任何方法可以在运行时检测e.id的类型。或者其他解决这个问题的方法。
我试着用rhs来编号,但没用。任何建议都会很受欢迎的。谢谢
1条答案
按热度按时间wpx232ag1#
首先,您需要访问classmetadata:
您可以按以下方式编写hql查询:
提供实际类型应该可以解决您的问题。