jsjgelei 2013-06-21 10:25
浏览 293
已采纳

hibernate问题

问题:我通过hibernate原生sql子查询获取返回的实体list
异常:
Could not find [color=red]setter [/color]for AD_ID on class com.gtd.rocket.entity.AddressEntity
Could not find setter for AD_ID on class com.gtd.rocket.entity.AddressEntity; nested exception is org.hibernate.PropertyNotFoundException: Could not find setter for AD_ID on class com.gtd.rocket.entity.AddressEntity
分析:实体已经有setter方法
@Id
@GeneratedValue
@Column(name = "ad_id", unique = true, nullable = true)
public int getAd_id()
{
return ad_id;
}
public void setAd_id(int ad_id)
{
this.ad_id = ad_id;
}
sql查询:
String sql = "select * from a_address where ad_id in(:ids) order by ad_id";
Map> params = new HashMap>();
params.put("ids", idlist);

public List executeListBySql(final boolean transformer, final String queryString, final Map values)
{
return getHibernateTemplate().executeFind(new HibernateCallback()
{

        public Object doInHibernate(Session session) throws HibernateException, SQLException
        {
            Query query = session.createSQLQuery(queryString);
            if (transformer)
            {
                query.setResultTransformer(Transformers.aliasToBean(entityClass));
            }
            if (values != null && values.size() > 0)
            {
                query.setProperties(values);
            }
            List list = query.list();
            return list;
        }
    });
}
  • 写回答

1条回答 默认 最新

  • jinnianshilongnian 2013-06-21 10:53
    关注

    官网上有解释

    Could not find setter for AD_ID 即因为如使用oracle默认不区分大小写,而且它没有把你的EntityClass识别为Entity所以无法转换为property,所以默认就调用setAD_ID;
    1、调用如下 告诉hibernate我是个Entity
    sess.createSQLQuery("SELECT {cat.*} FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID")
    .addEntity("cat", Cat.class)

    3、 select A_ID as "a_id" 如果是mysql 使用a_id 告诉hibernate 真正的属性名 区分大小写的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站