首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate对视图的操作(2)

2012-10-29 
hibernate对视图的操作(二)由于hibernate 默认情况下会将视图中的所有字段作为复合主键,可是在具体应用中,

hibernate对视图的操作(二)

由于hibernate 默认情况下会将视图中的所有字段作为复合主键,可是在具体应用中,我们可能需要强制给视图一个主键,这种情况下我们可以这样做:

视图:

create or replace view empdetail(id, emp_name, emp_sal, dpt_name)as(select rownum, e.emp_name, e.emp_sal, d.dpt_name from dept d, empt e where d.dpt_id = e.emp_dpt_id)

构造这样的视图后,我们对视图的操作就和对表的操作相同了,具体如下:

1、EmpDetail。java(持久化类)

public class EmpDetail implements Serializable {private Integer id;private String empName;private Integer empSal;private String dptName;public Integer getId() {return id; }public void setId(Integer id) {this.id = id; }public String getEmpName() {return empName; }public void setEmpName(String empName) {this.empName = empName; }public Integer getEmpSal() {return empSal; }public void setEmpSal(Integer empSal) {this.empSal = empSal; }public String getDptName() {return dptName; }public void setDptName(String dptName) {this.dptName = dptName; }}

?2、EmpDetail.hbm.xml(映射文件)

<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.xxx.xxx.EmpDetail" table="EMPDETAIL"><id name="id" column="ID" type="java.lang.Integer" length="10"><generator /></id><property name="empName" type="java.lang.String" >      <column name="EMP_NAME"  unique="false"  not-null="true"  length="100" /></property><property name="empSal" type="java.lang.Integer" >      <column name="EMP_SAL"  unique="false"  not-null="true"  length="10" /></property><property name="dptName" type="java.lang.String" >      <column name="DPTN_AME"  unique="false"  not-null="true"  length="100" /></property></class></hibernate-mapping>

对这种这种视图操作时就和对表操作时一样了。

热点排行