在查询分析器之类里面执行下这个sql 看看有什么问题
表其他字段有值么 

解决方案 »

  1.   

    因为你是一对多双向关联。 
    用sql= "from Categoery c where c.categoeryid=?"; 
    然后用 得到的Categoery 对象。 
    Categoery c =...; c.getBooks() 就可以了的到你的Book对象。 
      

  2.   

             <many-to-one name="categoery" class="org.aloha.bookstore.vo.Categoery" fetch="select">
                 <column name="categoeryid" />
             </many-to-one> 晕,这里categoery只有一个数据项,为什么不提出来试试看呢?
    不过,既然能查出来,并且有bookid,会不会是字符编码的问题?楼猪试试看
      

  3.   

    谢谢我用的是WEBWORK+SPRING+HIBERNATE 在显示分类的时候会出现中文乱码 :(
      

  4.   

    统一字符编码,我还没学过spring呢惭愧惭愧,哈哈
      

  5.   

    inverse设置true
    Book.hbm.xml
     <property name="bookname" type="java.lang.String">
                 <column name="bookname" length="20" />
             </property>
             <property name="price" type="java.lang.Float">
                 <column name="price" precision="12" scale="0" />
             </property>
             <property name="press" type="java.lang.String">
                 <column name="press" length="20" />
             </property> 
    <set inverse="true">
             <id name="bookid" type="java.lang.Integer">
                 <column name="bookid" />
                 <generator class="native" />
             </id>
             <many-to-one name="categoery" class="org.aloha.bookstore.vo.Categoery" fetch="select">
                 <column name="categoeryid" />
             </many-to-one>
             
    </set>
             
      

  6.   

    在多对一得配置里添加 lazy="false"
    <many-to-one name="categoery" class="org.aloha.bookstore.vo.Categoery"  lazy="false">
      

  7.   

    Query query=session.createQuery("from Book b where b.categoery.categoeryid=?"); 
    query.setParameter(0, categoeryid); 
    请教LZ数据库中的book表里应该只有categoeryid吧,
    可否改为Query query=session.createQuery("from Book b where b.categoeryid=?"); 
    然后在试试看?
      

  8.   

    谢谢fulianglove,问题解决了 。
      

  9.   

    能说一下这是为什么吗,这个属性好像是设置了FALSE就不实例化新的对象?
    顺便再问一个问题,显示到页面的中文是乱码,怎么解决呢
      

  10.   

    竟然是lazy的错误 惭愧
    你试试inverse为false 
    这样做是设置一对多 主控方
      

  11.   

    乱码好办
     <property name="connection.useUnicode">true</property>
        <property name="connection.characterEncoding">UTF8</property>
        <property name="connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <property name="connection.url">
            jdbc:mysql://localhost:3306/test        
        </property>
        <property name="connection.useUnicode">true</property>
        <property name="connection.characterEncoding">UTF8</property>
    db编码 页面编码 编辑器编码 关于request response 最好用filter去设置编码
      

  12.   

    把这些代码放到SPRING的配置文件里面去吗,好像不行
      

  13.   

    是BOOk.hbm.xml中吗,放进去错误要有匹配的表列,谢谢
      

  14.   

    你还是配置filter解决乱码吧 hibernate本身对字符编码 没做什么的