日期:2014-05-17  浏览次数:20660 次

[java新手有三问,谢谢]hibernate的使用,老师是北京大学的


表如下:
我要写的sql是这样的:
通过table2来查table1中的信息,二者通过id,Yid相连。即:
select A.name,B.Yname from table2 B left join table1 on B.Yid=A.id

我是不是要这样做:
1.建二个pojo(分别是table2与table1的bean),

我真的不知道怎么办?
谢谢。
我只会一张表,的,对一张表进行select,或insert

------解决方案--------------------
有外键关联么,如果有直接查那个被关联的对象然后另一个表的结果应该也可以得到。
------解决方案--------------------
从楼主所给图像很明显可以看出,table2的表中Yid作为外键关联table1,table2的id自动生成就可以。建表成立后看hibernate的配置环境进行配置,然后创建.hbm.xml文件,和实体类在一个包中建立就可以了。这个自动生成看hibernate文档就可以了。
------解决方案--------------------
1.如果  你配置一对多映射 设置即时加载既能得到单一对象的关联集合
2.你可以用sql语句直接查询,hql也可以    
------解决方案--------------------
引用:
1.如果  你配置一对多映射 设置即时加载既能得到单一对象的关联集合
2.你可以用sql语句直接查询,hql也可以    



正解
------解决方案--------------------
是你关联关系是什么?一对一、一对多、多对一,是单向关联还是双向关联
建议使用注解方式。开发起来代码少。使用方便。
假设你要建立机构(table1)、用户(table2)一对多单向关联。
1:建立两个表的POJO类。Org.java,User.java
2:在User里做如下配置

        @ManyToOne()
@JoinColumn(name="jyjg")
private Org org;
        public Org getOrg() {
return org;
}

public void setOrg(Org org) {
this.org = org;
}

保存user的时候要set一个org进去。


------解决方案--------------------
你的这个需求不需要一对多等映射,你只需要建立两个pojo类,然后对每一个类创建相应的pojo.hbm.xml,在这个配置文件中完成对数据库的映射,同时配置逐渐生成策略。然后将配置文件配到hibernate.cfg.xml中就行
------解决方案--------------------
注解用法
@ManyToOne(fetch = FetchType.EAGER)  //即时加载
@JoinColumn(name="yid")   //数据库外键名
public Category getYid() {
return yid;
}
xml用法
<many-to-one name="yid" class="table1"> //name为表列名