关于hibernate的问题,不知道什么原因,我写的是 一个查询语句,结果后台执行的是一个update语句,我执行的查询代码:
String hql="select b from Blog b where b.bloger.id='"+bloger.getId()+"'";
Query query=this.getSession().createQuery(hql);
List lt=query.list();报错信息:信息: org.hibernate.exception.DataException: could not update: [edu.myblog.ssh.entity.Blog#5]高手,高手在哪里,麻烦了,谢谢了,

解决方案 »

  1.   

    hql没写对
     from Blog b where b.bloger.id='"+bloger.getId()+"'
    看看
      

  2.   

    应该是HQL的问题
    Query query=this.getSession().createQuery("Blog b where b.bloger.id=:blogid");  
    query.setString("blogid","bloger.getId()");
    试试看
      

  3.   


    试过了,还是没用,一样的错误,怎么回事呢,这明明是查询语句啊,怎么执行的却是一条update语句,
      

  4.   

    应该是HQL的问题 
    设个断点看看!
      

  5.   

    <prop key="hibernate.show_sql">true</prop>
      

  6.   

    设了呀,早就,我就是通过它才知道,后台执行的是update语句
      

  7.   

    我试了下,应该不是hql语句的问题,我把hql改成“from Blog”试了下,还是报同样的错误,
    我之前有查询出 最新的10条博文,即 from Blog b order by b.createTime desc
    Query query =this.getSession().createQuery(hql);
      query.setFirstResult(0);
         query.setMaxResults(10);
    是不是这个原因呢,查询过一次就不让查第二次了?
      

  8.   

    倒是来个人啊,我用ssh做一个博客系统,不知道什么原因,在执行一次或两次查询操作后 ,居然自动执行一个udpate语句,程序偶尔能运行,偶尔又运行不了,或者多刷新几次就报错了,高人哪,好心人啊,在哪里,出来帮帮忙咯
      

  9.   

    hql写错了
    String hql="from Blog b where b.bloger.id='"+bloger.getId()+"'"; 
    Query query=this.getSession().createQuery(hql); 
    List lt=query.list();