各位大虾,我有一个问题想请教一下,对hibernate不是很懂。
总共三个表,t_product_life险种表,
t_agency代理公司表
t_agency_product代理公司可销售的险种表
其中:t_agency代理公司表 这个表关联T_AGENCY_PRODUCT表,具体的定义如下: public class Agency implements Serializable {
private Set productList = new HashSet();
public Set getProductList() {
return productList;
} public void setProductList(Set productList) {
this.productList = productList;
}
}//其它字段略 而对应的agency.hbm.xml文件是:<hibernate-mapping>
<class
name="com.ulic.tars.domain.Agency"
table="T_AGENCY"
dynamic-update="true"
dynamic-insert="true"
lazy="false"
>
<id
name="agencyId"
type="java.lang.Long"
column="AGENCY_ID"
>
<set name="productList" table="T_AGENCY_PRODUCT" lazy="false" inverse="false" >
<key column="agency_id"/>
<many-to-many column="product_id" class="com.ulic.tars.domain.ProductLife"/>
</set></hibernate-mapping>现在我想要做的是从另一个表,t_product_life中检索出相关的险种信息
对应的sql语句是:
select * from t_product_life a,t_agency b,t_agency_product c
where a.product_id=c.product_id
and b.agency_id=c.agency_id
and b.organ_code=1037;
总共三个表,t_product_life险种表,
t_agency代理公司表
t_agency_product代理公司可销售的险种表
其中:t_agency代理公司表 这个表关联T_AGENCY_PRODUCT表,具体的定义如下: public class Agency implements Serializable {
private Set productList = new HashSet();
public Set getProductList() {
return productList;
} public void setProductList(Set productList) {
this.productList = productList;
}
}//其它字段略 而对应的agency.hbm.xml文件是:<hibernate-mapping>
<class
name="com.ulic.tars.domain.Agency"
table="T_AGENCY"
dynamic-update="true"
dynamic-insert="true"
lazy="false"
>
<id
name="agencyId"
type="java.lang.Long"
column="AGENCY_ID"
>
<set name="productList" table="T_AGENCY_PRODUCT" lazy="false" inverse="false" >
<key column="agency_id"/>
<many-to-many column="product_id" class="com.ulic.tars.domain.ProductLife"/>
</set></hibernate-mapping>现在我想要做的是从另一个表,t_product_life中检索出相关的险种信息
对应的sql语句是:
select * from t_product_life a,t_agency b,t_agency_product c
where a.product_id=c.product_id
and b.agency_id=c.agency_id
and b.organ_code=1037;
解决方案 »
- 有一个题,有些不解,求各位帮忙理解一下
- JIRA的安装问题,求教高手有经验的人。速给分!
- <input class="easyui-combobox" id="id" url=">easyui chbobox 默认值如何设置
- 一个关于jdbc连接的问题
- MyEclipse7.0中自动处理.properties属性文件里的中文的问题
- [color=#FF0000JavaEE开发常见异常错误信息][/color]
- 基于webservice掌上应用的命题如何把握??
- 在JBOSS,布置EJB出现问题?????
- 求助:java的基础问题!! thanks!!!!!!!!!!!
- 如何引入javax.xml.soap包的问题
- Mysql 中命令 desc不能用,一用就报错。为什么?
- 会webwork都应该懂的问题,实在没分了
现在的问题是,我这个中间表没有相应的hibernate映射对象,那如何能够进行相关的检索实现我的需求呢?
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Agency ag = (Agency)session.load(Agency.class, 1037);
for (Iterator iter=Agency.getProductList().iterator(); iter.hasNext();) {
ProductLife pr = (ProductLife)iter.next();
System.out.println(pr.getName());
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
} 查询不要查询第三方表的,它只是把两张表关联起来。另外楼主最好配置成双向映射:在Productlife.hbm.xml里也相应配置映射,类里添加相应属性。
忘记说了 HibernateUtils 是我自己写的管理sessionFactory的工具类,楼主自己手动创建sessionFactory