`

hibernate映射视图的两种方式

 
阅读更多

1.数据库已经建立视图,hibernate只是把视图当作普通的表来映射。 
视图VIEW_MER_INST_POS: 

select MER.DAYS_MERCHT_ID MER_ID, 
       INST.DAYS_MERCHT_ID INST_ID, 
       POS.POS_ID POS_ID 
from tbl_days_mercht_attr MER, 
     tbl_days_mercht_info INST, 
     tbl_days_mercht_pos_info POS 
where MER.days_mercht_id = INST.up_days_mercht_id 
  and INST.days_mercht_id = POS.days_mercht_id 

hbm.xml配置 

<class 
    name="db.po.ViewMerInstPos" 
    table="VIEW_MER_INST_POS" 
> 

    <composite-id> 
            <key-property 
            name="merId" 
            column="MER_ID" 
            type="java.lang.String" 
            length="8" 
        /> 
        <key-property 
            name="instId" 
            column="INST_ID" 
            type="java.lang.String" 
            length="8" 
        /> 
        <key-property 
            name="posId" 
            column="POS_ID" 
            type="java.lang.String" 
            length="8" 
        /> 
  </class> 
</hibernate-mapping> 

 

2.数据库没有视图,用hibernate自己做视图映射 
hbm配置如下: 

<hibernate-mapping package="huntersxp.db.pojo"> 
<class name="ViewMerInstPos"> 
<meta attribute="sync-DAO">false</meta> 
<subselect> 
select 
MER.DAYS_MERCHT_ID MER_ID,INST.SHOP_NM SHOP_NM,POS.POS_ID POS_ID 
from tbl_days_mercht_attr MER, 
tbl_days_mercht_info INST, 
tbl_days_mercht_pos_info POS 
where MER.days_mercht_id = INST.up_days_mercht_id and INST.days_mercht_id = POS.days_mercht_id 
</subselect> 
<synchronize table="tbl_days_mercht_attr"/> 
<synchronize table="tbl_days_mercht_info"/> 
<synchronize table="tbl_days_mercht_pos_info"/> 
<composite-id> 
        <key-property 
            name="merId" 
            column="MER_ID" 
            type="java.lang.String" 
            length="8" 
        /> 
        <key-property 
            name="shopNm" 
            column="SHOP_NM" 
            type="java.lang.String" 
            length="40" 
        /> 
        <key-property 
            name="posId" 
            column="POS_ID" 
            type="java.lang.String" 
            length="40" 
        /> 
</composite-id> 
</class> 
</hibernate-mapping> 

 
其中synchronize表示当表的数据发生变化的时候,视图的数据也会发生变化。 

 

 @Entity
  @Table(name = "test_summary")
  @Subselect("SELECT i.name AS itemName, MAX(b.amount) AS amountMax, COUNT(*) AS itemCount "
  + "FROM test_item i "
  + "INNER JOIN test_bid b ON i.item_id = b.id "
  + "GROUP BY i.name")
  @Synchronize( { "test_item", "test_bid" })
  // tables impacted
  public class Summary implements Serializable {
  private static final long serialVersionUID = 3647575276389635849L;
  @Id
  @Column(name = "itemName")
  private String itemName;
  @Column(name = "amountMax")
  private double amountMax;
  @Column(name = "itemCount")
  private Integer itemCount;
  public Summary() {
  super();
  }
  public Summary(String itemName, double amountMax, Integer itemCount) {
  super();
  this.itemName = itemName;
  this.amountMax = amountMax;
  this.itemCount = itemCount;
  }
  public String getItemName() {
  return itemName;
  }
  public void setItemName(String itemName) {
  this.itemName = itemName;
  }
  public double getAmountMax() {
  return amountMax;
  }
  public void setAmountMax(double amountMax) {
  this.amountMax = amountMax;
  }
  public Integer getItemCount() {
  return itemCount;
  }
  public void setItemCount(Integer itemCount) {
  this.itemCount = itemCount;
  }
  }

 

分享到:
评论

相关推荐

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

    总结起来,在J2EE项目开发中,使用Hibernate映射视图是一种解决复杂查询和跨表统计的有效策略。当原生SQL不适用时,创建视图并进行相应的ORM配置可以保持代码的整洁性和可维护性。需要注意的是,视图的映射可能会...

    hibernate关联映射实例

    在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作...在实践中,不断探索和理解这些关联映射方式,能够使开发者更加熟练地驾驭Hibernate,提升软件开发的质量和效率。

    hibernate 主键一对一映射(单向) 实例(java类)

    在Java的持久化框架Hibernate中,一对一(One-to-One)映射是一种常见的关系映射方式,它用于表示两个实体之间一对一的关联关系。在这种关系中,一个实体对应另一个实体的唯一实例。本实例将深入探讨如何在Hibernate...

    hibernate正向工程和逆向工程

    这种方式更加符合Java程序员的面向对象编程思想,也是在项目设计阶段较为常见的一种方式。 **步骤详解:** 1. **创建Java POJO对象:** - 手动创建Java实体类(User),并为其添加Hibernate注解,例如`@Entity`等,...

    struts2 spring hibernate使用XML的整合方式

    ### Struts2、Spring、Hibernate使用XML的整合方式 #### 概述 本文档将详细介绍如何使用XML配置文件实现Struts2、Spring以及Hibernate(通常称为SSH)这三种技术的整合,以支持一个简单的商品管理系统。这个系统...

    jsf和hibernate资料

    XDoclet曾是用于自动生成Hibernate映射文件和Java类的工具,但在现代开发中,更多地使用注解驱动的方式,减少了对XDoclet的依赖。 以上是JSF和Hibernate的基本介绍,以及它们在Web开发中的角色。通过深入学习这两个...

    hibernate_one_to_one映射简单入门例子

    **二、一对一映射的两种类型** 1. **主键关联(Primary Key Join)**:两个实体共享同一个主键,这通常意味着它们是同一个表的不同视图或者表的一部分。 2. **外键关联(Foreign Key Join)**:一个实体的主键作为...

    SSH框架中构建hibernate必须的包

    8. **Query和Criteria API**:Hibernate提供了两种查询方式:HQL(Hibernate Query Language)和Criteria API。HQL是面向对象的查询语言,类似于SQL,而Criteria API则是基于Java对象的查询方式,更加面向API。 9. ...

    整合Hibernate+JSF

    4. **Criteria和HQL查询**:除了传统的SQL查询,Hibernate提供了Criteria查询和HQL(Hibernate Query Language),这两种查询方式更加面向对象,便于代码的维护。 **二、JSF框架** 1. **UI组件**:JSF提供了一系列...

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

    在IT行业中,尤其是在Web开发领域,使用框架进行项目构建能够极大地提高开发效率和代码质量。本案例主要关注的是...通过实践这个案例,开发者可以提升自己的Java Web开发技能,并对这两种框架的整合有更深入的理解。

    Struts2+Hibernate4+Spring3整合(注解和XML方式都有)

    在"Struts2+Hibernate4+Spring3整合"中,通常有两种方式实现整合: 1. **XML方式**:这是传统的配置方式,所有的配置信息都在XML文件中。Struts2的配置文件(struts.xml)定义Action和结果,Hibernate的配置文件...

    springmvc整合hibernate4

    SpringMVC 和 Hibernate4 是两种在 Java Web 开发中广泛使用的框架。SpringMVC 用于构建应用程序的控制层,提供模型-视图-控制器(MVC)架构,而 Hibernate4 则是对象关系映射(ORM)框架,帮助开发者简化数据库操作...

    struts+hibernate 项目

    这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成使用,并应用于实际项目开发。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于...

    SpringMVC+hibernate框架整合

    Criteria API提供了一种面向对象的方式来查询数据库,比SQL更易读、更灵活。 **整合SpringMVC和Hibernate** 整合SpringMVC和Hibernate,主要是为了让SpringMVC能够调用Hibernate提供的服务进行数据操作。通常步骤...

    struts1和Hibernate实例

    Struts1和Hibernate是两种非常重要的Java开发框架,它们在企业级应用开发中扮演着核心角色。Struts1主要用于控制应用程序的流程,而Hibernate则是一个强大的对象关系映射(ORM)框架,它简化了数据库操作。 **...

    struts+hibernate做的商城

    Struts和Hibernate是两种在Java Web开发中广泛使用的开源框架,它们共同构成了许多企业级应用的基础。本项目是一个基于Struts和Hibernate实现的在线商城系统,具有完整的功能和良好的架构设计。 Struts是一个用于...

    简单Struts+Hibernate实例

    Struts和Hibernate是Java开发中两个非常重要的框架,它们在构建企业级Web应用程序时起着核心作用。Struts是MVC(模型-视图-...通过实际操作,你可以更好地掌握这两种框架的使用技巧,为后续的J2EE开发打下坚实的基础。

    Struts+Hibernate实现MVC

    Hibernate则是一个对象关系映射(ORM)框架,它允许开发者用面向对象的方式来操作数据库,而无需直接编写SQL语句。Hibernate通过配置文件和注解来定义Java对象(POJOs)与数据库表之间的映射关系,提供了透明的数据...

    hibernate插件

    Hibernate支持HQL(Hibernate Query Language)和Criteria API两种查询方式,它们都是面向对象的,更加易读且可避免SQL注入问题。 7. **性能优化:** - 第二级缓存:通过插件配置,可以启用和配置Hibernate的第二...

Global site tag (gtag.js) - Google Analytics