public List<Materials> findAllMaterialsByAppid(Integer appid) {
String hql1 = "select medid from Materials where appid = ? and pid = 0";
List<Materials> list = this.hibernateTemplate.find(hql1, appid);
if (list != null && list.size() > 0) {
if(list.get(0).getMedid() != null){
Integer medid = (Integer)list.get(0).getMedid();
String hql2 = "from Materials where appid = ? and pid = ?";
return this.hibernateTemplate.find(hql2, appid, medid);
}
请教一下大家
String hql1 = "from Materials where appid = ? and pid = 0";
错误贴完整,Materials的各个属性贴上来
Integer medid = (Integer)list.get(0).getMedid(); 应该是这行代码导致的。
Materials中的属性medid是什么数据类型的?
最好贴完整一点,看看具体是哪一行报错。
不过我猜测一下是不是这行的问题:
[code="java"]
Integer medid = (Integer)list.get(0).getMedid();
[/code]
你改为:
[code="java"]
Integer medid = (Integer)(list.get(0).getMedid());
[/code]
或者
[code="java"]
Integer medid = ((Materials)list.get(0)).getMedid();
[/code]
试试。
你SELECT 语句中是取 medid
String hql1 = "select medid from Materials where appid = ? and pid = 0";
但实际上你是相取是的Materials 这个对象
这样的转换肯定有问题,
你想要的SQL应该是这样的吧:
String hql1 = "select * from Materials where appid = ? and pid = 0";