hibernate 一对多 jsp显示

来源:互联网 发布:数学必修三算法 编辑:程序博客网 时间:2024/06/05 20:04

需求如下:

公司信息表company_info:name(姓名)、nature(性质外键关联nature_code)

公司的性质放置到另外一张表

公司性质表company_nature:nature_code(公司性质代码)、nature_des(公司性质描述)

namenature软件公司1

nature_codenature_des1国企

首先通过MyEclipse根据数据库反向自动创建entity

public class CompanyInfo implements java.io.Serializable {

private String name;

private CompanyNature companyNature;


//注意下面的FetchType默认为lazy,手动改为EAGER,这样在一个session中同时获取两个实体类

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "scale")
public CompanyScale getCompanyScale() {
return this.companyScale;
}


public void setCompanyScale(CompanyScale companyScale) {
this.companyScale = companyScale;
}

//相关自动生成的构造方法和set get方法

}

public class CompanyNature implements java.io.Serializable {

private Integer natureCode;
private String natureDes;
private Set<CompanyInfo> companyInfos = new HashSet<CompanyInfo>(0);

//注意下面的FetchType默认为lazy,手动改为EAGER,这样在一个session中同时获取两个实体类

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "companyNature")
public Set<CompanyInfo> getCompanyInfos() {
return this.companyInfos;
}


public void setCompanyInfos(Set<CompanyInfo> companyInfos) {
this.companyInfos = companyInfos;
}

//相关自动生成的构造方法和set get 方法

}

二、dao

public List queryCompany(){
List resultList = null;
session = getCurrentSession();
Query  query = session.createQuery("FROM CompanyInfo");
resultList = query.list();
return resultList;
}


action

public String queryCompany() throws Exception{

TelService telService = (TelService)getBeanFromCurrentContext("TelService");
List<CompanyInfo> l = telService.queryCompany();
getServletRequest().setAttribute("companyInfoList", l);
        return "queryCompany";
}

jsp页面


<table border="1">
    <s:iterator value="#request.companyInfoList" id="CompanyInfo">
      <tr><td>
      <s:property value="#CompanyInfo.name"/>
</td><td>
<s:property value="#CompanyInfo.companyNature.natureDes" />
</td>
          </tr>
         </s:iterator>
     </table>

0 0
原创粉丝点击