(一个对多篇文章)
member_register表:register_id register_name 
article表:article_id article_title register_id
有这样的两个表,现在想要多表查询把member_register表的register_name和article表的article_title
查询出来?Article.javaprivate int register_id;
private String register_name;Register.javaprivate int article_id;
private String article_tilte;
private int register_id;Article.hbm.xml
<many-to-one name="register" class="Register" fetch="select" insert="false" update="false">
 <column name="register_id" not-null="true"/>
</many-to-one>
 
Register.hbm.xml<set name="article" inverse="true">
           <key>
               <column name="register_id" not-null="true"/>
           </key> 
    <one-to-many class="Article"/> 
</set>dao.java
//String hql ="from Article ar";
String hql="from Article ar,MemberRegister mr where ar.mr=mr.register_id";
Query query =session.createQuery(hql);怎么就查不出来呢!高手告诉是哪里错了呢!
得怎么改,谢谢了!

解决方案 »

  1.   

    Register类里没有Set<Article>?
      

  2.   

    private Set article = new HashSet(0);这样set了,但是还是有错误!
      

  3.   

    Register.java private int register_id; 
    private String register_name; Article.java private int article_id; 
    private String article_tilte; 
    private int register_id; Article.hbm.xml 
    <many-to-one name="register" class="Register" fetch="select" insert="false" update="false"> 
    <column name="register_id" not-null="true"/> 
    </many-to-one> name="register"对应Article.java 的哪个属性?
      

  4.   

    org.hibernate.PropertyNotFoundException: Could not find a getter for
    还有我感觉hql也有问题现在就是想要实现多表查询
    然后在hbm.xml了做配置
      

  5.   

    Register.java private int register_id; 
    private String register_name; 
    Article.java 
    private int article_id; 
    private String article_tilte; 
    private int register_id; 
    这个是这样的,写反了
      

  6.   

    String hql="from Article ar,MemberRegister mr where ar.mr=mr.register_id"; 
    mr既然是对象,怎么和 register_id相等?怎么看这个id都应该是字段吧?然后是实体的问题:
    aticle表的有三个字段,LZ变成了register的两个字段
    是不是名字起错了?还有,register类应该对应的是article表?那么多对一的关系应该是多个register对象对应的一个article对象,
    则在register类中应该有一个Article article;
    Article类中应该有Set registers = new HashSet(0);没有则不能用延迟加载...
      

  7.   

    就是一个人(registered)对应自己发表的多篇文章(Article)
      

  8.   


    那就在Register类中添加 集合
    在Article类中添加Register对象
      

  9.   

    按照10楼说的我也做了
    不过有错误private Set register = new HashSet(0); register低下有个红色的浪线
      

  10.   

    Register.java private int register_id; 
    private String register_name; 
    private Set register = new HashSet(0);//这个地方就有问题了Article.java 
    private int article_id; 
    private String article_tilte; 
    private int register_id; 
    private Reigster register;
    这样对吧!!
    但是private Set register = new HashSet(0);reguster低下有条红色浪线不能保存
      

  11.   

    地下有红线就是代码有误,看看有没有相同名字的变量之类,Register register这个变量其实就是int reigster_id这个字段的实体对象..
      

  12.   

     Set register = new HashSet(0);里这个register是跟那个相对应的啊
    还是随便定义的
      

  13.   

    Set register = new HashSet(0);里这个register是跟那个相对应的啊 
    还是随便定义的
      

  14.   

    OK!现在配置成功了!
    但是hql有问题?请问HQL要怎么写public List getAllActicles(){
    Session session = DependencyUtil.currentSession();
    String hql ="from Article ar,MemberRegister mr order by ar.article_title desc, article_id";
    //String hql="from Article ar,MemberRegister mr where ar.register_id = mr.register_id";
    Query query =session.createQuery(hql);
    List list=query.list();
    return list;
    }
    这是我的dao。?