`
xinanadu
  • 浏览: 228137 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate对视图的处理

    博客分类:
  • JSF
 
阅读更多

用过hibernate的人都知道,有时我们要用数据库的视图。但关键是视图没有主键,这个用Myeclipse自动生成的POJO类就有两个。一个类名.java,一个是类名Id.java,而映射文件只有一个。这样你不能直接用Hibernate的“from类名”,只有用“select 类名.id. 属性名from类名”,因为只要视图中有一个字段有一个为NULL,你查出来的数据就会为NULL.而用后者这样查出来的对象是一个Object对象。Object对象不好拆分。不能直接用“类名.属性名”。其实我们可以强制修改 类名.hgc.xml .

例如:

我们有这样一个视图

 

public class AllTablePb implements Serializable {
 // Fields
 private AllTablePbId id;
 // Property accessors
 public AllTablePbId getId() {
  return this.id;
 }
 public void setId(AllTablePbId id) {
  this.id = id;
 }
}
public class AllTablePbId implements java.io.Serializable {
 // Fields
 private String owner;
 private String tableName;
 private String columnName;
 private String dataType;
 private String pbcCnam;
 private String pbcCmnt;
 // Property accessors
 public String getOwner() {
  return this.owner;
 }
 public void setOwner(String owner) {
  this.owner = owner;
 }
 public String getTableName() {
  return this.tableName;
 }
 public void setTableName(String tableName) {
  this.tableName = tableName;
 }
 public String getColumnName() {
  return this.columnName;
 }
 public void setColumnName(String columnName) {
  this.columnName = columnName;
 }
 public String getDataType() {
  return this.dataType;
 }
 public void setDataType(String dataType) {
  this.dataType = dataType;
 }
 public String getPbcCnam() {
  return this.pbcCnam;
 }
 public void setPbcCnam(String pbcCnam) {
  this.pbcCnam = pbcCnam;
 }
 public String getPbcCmnt() {
  return this.pbcCmnt;
 }
 public void setPbcCmnt(String pbcCmnt) {
  this.pbcCmnt = pbcCmnt;
 }
}
 

 

配置文件:

 

<hibernate-mapping>
 <class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
  <composite-id name="id" class="com.hhkj.workflow.bean.AllTablePbId">
   <key-property name="owner" type="string">
    <column name="OWNER" length="30" />
   </key-property>
   <key-property name="tableName" type="string">
    <column name="TABLE_NAME" length="30" />
   </key-property>
   <key-property name="columnName" type="string">
    <column name="COLUMN_NAME" length="30" />
   </key-property>
   <key-property name="dataType" type="string">
    <column name="DATA_TYPE" length="106" />
   </key-property>
   <key-property name="pbcCnam" type="string">
    <column name="PBC_CNAM" length="30" />
   </key-property>
   <key-property name="pbcCmnt" type="string">
    <column name="PBC_CMNT" length="254" />
   </key-property>
  </composite-id>
 </class>
</hibernate-mapping>
 

 

而如何把联合主键转换为普通的主键呢。那我就就把AllTablePb删除。把AllTablePbId改为AllTablePb

配置文件改为:

 

<hibernate-mapping>
 <class name="com.hhkj.workflow.bean.AllTablePb" table="V_ALLTAB_PB" schema="CANP">
 
   <id name="owner" type="string">
    <column name="OWNER" length="30" />
   </id>
   <property name="tableName" type="string">
    <column name="TABLE_NAME" length="30" />
   </property>
   <property name="columnName" type="string">
    <column name="COLUMN_NAME" length="30" />
   </property>
   <property name="dataType" type="string">
    <column name="DATA_TYPE" length="106" />
   </property>
   <property name="pbcCnam" type="string">
    <column name="PBC_CNAM" length="30" />
   </property>
   <property name="pbcCmnt" type="string">
    <column name="PBC_CMNT" length="254" />
   </property>
  </class>
</hibernate-mapping>
 

 

对于配置文件的新主键是任意的。

分享到:
评论

相关推荐

    hibernate动态映射表处理oracle的clob类型

    hibernate动态映射表处理oralce10g的clob类型,压缩包为整个工程包. 真诚地希望能帮到你,同时真诚地希望你能和我交流, about any question^_^

    车辆管理系统(struts+hibernate+spring+oracle).zip

    它负责处理用户的请求,并将结果传递给相应的视图进行展示。在车辆管理系统中,Struts框架确保了用户界面的友好性和交互性,使得车辆信息的查询、修改和删除等操作变得简单直观。 Hibernate作为ORM框架,实现了Java...

    bbs论坛系统(structs2+hibernate+jsp)

    该系统是基于Struts2+Hibernate开发的一个论坛系统,其中,Hibernate主要负责数据底层封装处理,Struts2在Action中调用DAO相应的方法实现业务处理。系统采用B/S模式,用java语言结合mysql数据库技术进行开发。系统...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...

    其他类别Struts+Hibernate实现MVC-strutsmvc.rar

    Hibernate框架则负责处理数据持久化层的工作,它通过对象关系映射(ORM)技术将Java对象与数据库表进行映射,从而实现了对数据库的高效操作。Hibernate提供了一套丰富的API和查询语言(HQL),使得开发者可以方便地...

    Struts Spring Hibernate面试题汇总

    然后根据处理的结果调用相应的视图来显示处理的结果。 MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...

    会员管理系统(struts+hibernate+spring)130226.rar

    它通过Action类来处理用户的操作,如注册、登录、修改个人信息等,并将处理结果返回给相应的视图层。Hibernate框架则作为数据持久化层,负责与数据库进行交互。它通过对象关系映射(ORM)技术,将Java对象与数据库表...

    struts2.4+spring3.1+hibernate4.1的SSH框架

    而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。  采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...

    网上书店(struts+hibernate+css+mysql).rar

    在技术实现方面,Struts框架负责处理用户的请求和响应,将业务逻辑与视图分离,使得代码结构更加清晰。Hibernate框架则负责处理数据持久化,将对象与数据库表进行映射,简化了数据库操作。CSS用于美化网页界面,提高...

    源码基于JSP的博客系统(struts+hibernate+spring).rar

    Struts作为模型-视图-控制器(MVC)架构的一部分,负责处理Web层的请求和响应流程,简化了用户界面与后端逻辑之间的交互。Hibernate则提供了对象关系映射(ORM),将复杂的数据库操作封装成简单的Java对象处理,极大...

    基于Struts2+Hibernate+Spring+MySQL的B2C网站管理系统购物网项目源码

    注:里面的数据库文件都放在datebase目录下.(由于此处描述不支持图片功能,因此不能很好的展示效果图)希望读者见谅,读者可以在index.jsp文件里查看视图.下面是项目的功能简介: 基于Struts2+Hibernate+Spring+MySQL的...

    图书管理系统(struts+hibernate+spring).rar

    Struts作为一款优秀的MVC框架,可以帮助开发者将业务逻辑、数据模型和视图清晰地分离,使得代码更加易于维护和扩展。Hibernate则是一种对象关系映射(ORM)工具,它可以让开发者用面向对象的方式来操作数据库,极大地...

    使用struts+spring+hibernate 组装web应用

    使用struts+spring+hibernate 组装web应用 大部分的Web应用在职责上至少能被分成4层。 这四层是:presentation(描述也就是视图层),persistence(持久也就是数据持久层),business(业务)和domain model(域...

    struts spring hibernate整合框架

    2) 处理完毕之后,该把用户请求带到哪个视图上去 Spring IOC : 将程序中容易产生耦合的黏贴代码( dao.setDriver() ) 从程序中提取出去, 配置到配置文件中,由 工厂 根据配置文件创建,并初始化对象。这样,在代码...

    基于Struts和Hibernate技术的企业管理信息系统研究与开发

    虽然 Struts 解决了视图层、业务层和控制层的分离,但是并没有为数据持 久层提供灵活的框架支持。而 Hibernate 框架就是目前 Java 环境下基于 ORM 思 想的应用最为广泛的持久层框架技术。通过 Hibernate 使开发人员...

    项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)130223.rar

    Struts2作为MVC框架,负责处理页面请求和响应,将业务逻辑与视图分离,提高了代码的可维护性和可扩展性。Spring作为IoC容器,负责管理对象的生命周期和依赖关系,降低了代码的耦合度。Hibernate作为ORM框架,负责将...

    移动ssh项目(struts+spring+hibernate+oracle)130222.rar

    Struts作为项目的MVC(模型-视图-控制器)框架,简化了Java Web应用程序的开发流程,通过一系列的动作类、表单和标签库来分离表示层和业务逻辑层。Spring框架则以其依赖注入和面向切面编程的特性,优雅地管理了应用...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    Struts1.2作为MVC框架,负责处理请求分发、控制跳转和视图渲染,使得系统具有清晰的层次结构和良好的扩展性。Hibernate3.0作为ORM框架,负责处理对象与数据库之间的映射关系,简化了数据库操作,提高了开发效率。...

Global site tag (gtag.js) - Google Analytics