`
xinanadu
  • 浏览: 231469 次
  • 性别: 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 视图

    总之,Hibernate视图提供了对数据库视图的封装,使得我们可以像操作普通实体一样处理视图数据。虽然视图通常用于只读操作,但结合Hibernate的映射机制,我们可以方便地在Java应用程序中使用视图,提高代码的可维护性...

    J2EE企业级项目开发-1期 06 hibernate映射视图的使用经验.doc

    本篇文档主要讨论了如何在Hibernate中使用映射视图来处理这种情况,特别是在面对无法直接使用原生SQL(native SQL)的情况下。 Hibernate是一个强大的Java对象关系映射(ORM)框架,它允许开发者将数据库操作转化为...

    Hibernate做的留言板

    【标题】"Hibernate做的留言板" 是一个基于Java的Web应用程序,使用了流行的持久化框架Hibernate来处理数据库交互。这个项目提供了完整的源代码,方便开发者直接在Eclipse集成开发环境中运行和学习。它不仅是一个...

    用struts2加hibernate对学员信息进行增删改查操作

    在本项目中,"用Struts2加Hibernate对学员信息进行增删改查操作",主要涉及了以下几个核心知识点: 1. **Struts2框架**:Struts2是一个MVC(Model-View-Controller)架构的Java框架,它提供了处理HTTP请求和响应的...

    struts+hibernate 项目

    Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建...通过研究这个项目,开发者不仅可以学习到如何整合Struts和Hibernate,还能了解到如何在MyEclipse环境中进行开发,这对提升Java Web开发技能大有裨益。

    JSP+Hibernate实现留言板

    在这个案例中,我们使用了Java服务器页面(JSP)作为视图层,Hibernate作为持久层框架来处理数据库操作,实现了留言板的功能。下面我们将深入探讨这两个技术及其在留言板应用中的具体应用。 **1. JSP(Java Server ...

    spring+hibernate,自己封装了原生sql的处理,模仿mybatis使用

    而Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,允许开发者通过Java对象来操作数据库,减少了对SQL的直接使用。 标题中的"spring+hibernate"表明这是一个将两者结合使用的项目。Spring和...

    springmvc+spring+hibernate

    Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向切面编程(AOP),简化了代码管理与模块化,而Hibernate则是持久层框架,负责数据库操作,提供了对象关系映射(ORM)功能...

    spring mvc整合hibernate

    Spring MVC 用于构建应用程序的前端控制器,提供模型-视图-控制器(MVC)架构,而 Hibernate 是一个强大的对象关系映射(ORM)框架,负责数据库操作。整合这两个框架可以让我们在处理业务逻辑时更加高效和灵活。 ...

    Hibernate之struts2整合hibernate以及MVC分层架构的使用案例hibernate002

    本案例主要关注的是如何将Hibernate ORM(对象关系映射)框架与Struts2 MVC(模型-视图-控制器)框架整合,同时探讨MVC分层架构在实际应用中的运用。以下是对这些知识点的详细说明: **1. Hibernate ORM框架** ...

    struts+hibernate整合jar包

    这些库文件包含了运行一个基于Struts 2和Hibernate的Web应用所需的所有核心组件,例如Struts 2的动作调度、视图渲染、拦截器实现,以及Hibernate的对象持久化、查询工具等。在导入项目时,只需将这些jar包添加到项目...

    SpringMVC+Hibernate+Spring整合实例

    SpringMVC、Hibernate和Spring是Java开发中三大核心框架,它们各自负责应用程序的不同层面:SpringMVC用于处理HTTP请求和响应,Hibernate则是持久层框架,负责数据库操作,而Spring作为全能容器,提供依赖注入和面向...

    springmvc spring hibernate整合Demo

    Hibernate 是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作,消除了低级JDBC代码,提高了开发效率。通过Hibernate,开发者可以使用Java对象直接操作数据库,而无需关心SQL语句的编写。 在...

    springmvc, spring5.x , hibernate5.x 整合

    在IT行业中,Spring框架是Java领域最广泛应用的轻量级框架之一,而Spring MVC是它的一个模块,专门用于处理Web应用程序的模型-视图-控制器(MVC)架构。Spring 5.x带来了许多性能改进和新特性,如Reactor支持以实现...

    JSF与hibernate整合的登陆

    **JSF与Hibernate整合** 的目的是将JSF的UI处理能力与Hibernate的数据访问能力结合起来,创建出既具有良好用户体验又能够高效处理数据的Web应用。在本项目中,“JSF与Hibernate整合的登陆”可能涉及到以下关键知识点...

    jsf+hibernate+javabean完成对表的增删查改

    开发者只需要定义实体类(Entity),并用注解来描述其与数据库表的关系,Hibernate会自动处理数据的存取。 在使用JSF和Hibernate完成对表的CRUD操作时,通常分为以下步骤: 1. **创建JavaBean**:JavaBean是符合...

    springMVC+hibernate搭建的一个demo帮助新人

    SpringMVC和Hibernate是Java开发中非常流行的两个框架,它们分别负责Web应用的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。这个“springMVC+hibernate搭建的一个demo”旨在为初学者提供一个快速入门的实例,...

    struts+hibernate图书借阅管理系统

    Java的JDBC接口与Hibernate结合,实现了对数据库的高效访问;同时,Java的异常处理机制、多线程等特性也提升了系统稳定性和并发处理能力。 4. **J2EE(Java 2 Platform, Enterprise Edition)**:这是一个企业级的...

    springMVC+hibernate的jar包

    3. **模型-视图-控制器**:模型处理业务逻辑,视图负责展示数据,控制器协调模型和视图的交互。 4. **拦截器**:允许自定义拦截器,实现预处理和后处理功能,如权限验证、日志记录等。 5. **视图解析器**:自动根据...

    springMVC+hibernate3整合

    Spring MVC 和 Hibernate 是两个在Java Web开发中广泛使用的框架,它们分别处理模型-视图-控制器(MVC)架构中的不同部分以及数据持久化。Spring MVC 提供了强大的请求处理和视图管理功能,而 Hibernate 则是 ORM...

Global site tag (gtag.js) - Google Analytics