hibernate下的hql语句太长,如何修改

来源:百度知道 编辑:UC知道 时间:2024/06/27 13:43:43
getManagerHql =
select m.customID, u.userName from CstCustomManager m, SysUser
u where m.userID = u.ID and m.customID in (1207, 1208, 1209, 1210, 1211, 1212,
1213, 1214, 1215, 454, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
1226, 1227, 1228, 1229, 1216, 8012, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1250, 1251, 1252, 1253, 1254, 1255, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
1267, 1268, 1269, 1256, 1257, 1258, 1259.......); (....后面很长很长)
使用getHibernateTemplate().find(getManagerHql)查询时抛异常

严重: Servlet.service() for servlet default threw exception
com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -101, SQLSTATE: 54001, SQLERRMC: null
at com.ibm.db2.jcc.c.fg.e(fg.java:1596)
at com.ibm.db2.jcc.c.fg.a(fg.java:1206)
at com.ibm.db2.jcc.b.gb.g(gb.java:140)
at com.ibm.db2.jcc.b.gb.a(gb.java:39)
at com.ibm.

and (m.customID > 1207 and and m.customID < ....) 我发现这些是连号的。如果有个别排除可以 and m.customID not in (...)

getManagerHql =
select m.customID, u.userName from CstCustomManager m, SysUser
u where m.userID = u.ID and m.customID in (1207, 1208, 1209, 1210, 1211, 1212,
1213, 1214, 1215, 454, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
1226, 1227, 1228, 1229, 1216, 8012, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1250, 1251, 1252, 1253, 1254, 1255, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
1267, 1268, 1269, 1256, 1257, 1258, 1259.......); (....后面很长很长)
使用getHibernateTemplate().find(getManagerHql)查询时抛异常

严重: Servlet.service() for servlet default threw exception
com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -101, SQLSTATE: 54001, SQLERRMC: null
at com.ibm.db2.jcc.c.fg.e(fg.java:1046)
at com.ibm.db2.jcc.c.fg.a(fg.java: