• many to one could not resolve property


    今天在做一个功能的时候 
    遇到了。一个Could not resolve property 的问题。 

    配置文件如下: 

    Java代码  收藏代码
    1. <many-to-one name="user"  class="Users" column="StudentExam_user_fid" cascade="all" ></many-to-one>  



    查询代码: 

    Java代码  收藏代码
    1. Criteria crt = session.createCriteria(StudentExam.class).add(Restrictions.eq("exam.id", ExamId)).add(  
    2.     Restrictions.eq("reading", reading)).add(Restrictions.like("user.truename", name));  
    3.   
    4. return crt.setFirstResult(start).setMaxResults(max).list();  



    在网上找了好久。所有人给的理由都是“对照配置文件以及实体类,是否写错了字段名称” 
    在我一再的确认下,字段名称没有任何错误…… 
    而且使用user.id是可以进行查询的。除了这个以外。别的都不可以用! 
    于是开始对配置文件进行修改。尝试了 lazy设置为false 等等。。想对应的修改 
    Users配置文件的修改。未果 

    最后,经过各种挣扎。以及Hibernate相关API的查找。最终终于找出解决办法 

    Java代码  收藏代码
    1. Criteria crt = session.createCriteria(StudentExam.class).add(Restrictions.eq("exam.id", ExamId)).add(  
    2.     Restrictions.eq("reading", reading)).createCriteria("user").add(Restrictions.like("truename", name));  



    对。就是这样写。在使用完StudentExam里的属性后。

    Java代码  收藏代码
    1. .createCriteria("user")  

    设置到user实体里。然后再选择属性 
    注:这里的user是StudentExam类中的名称 

    注意一般情况下都是 user这个类的关系

  • 相关阅读:
    mysql myisam转innodb的2种方法
    利用apache限制IP并发数和下载流量控制
    详细说明phpmyadmin连接,管理多个mysql服务器
    [LeetCode] Add Digits
    [LeetCode] Move Zeroe
    [LeetCode] Construct String from Binary Tree
    [LeetCode] Find the Difference
    [LeetCode] Invert Binary Tree
    [LeetCode] Find All Numbers Disappeared in an Array
    [LeetCode] Detect Capital
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4482271.html
Copyright © 2020-2023  润新知