详细概述Hibernate Struts区别

这篇文章点明了Hibernate Struts之间的一些鸿沟,尤其关系到面向对象建模方面。文章也描述了如何在两者间搭起桥梁,给出了一个基于扩展Struts的解决方案。
首页 新闻资讯 行业资讯 详细概述Hibernate Struts区别

Hibernate还是比较常用的,于是我研究了一下Hibernate struts的关系,在这里拿出来和大家分享一下,希望对大家有用。

Hibernate struts是当前市面上几个***的开源的库之一。它们很有效率,是程序员在开发Java企业应用,挑选几个竞争的库的***。虽然它们经常被一起应用,但是Hibernate的设计目标并不是和Struts一起使用,而Struts在Hibernate诞生好多年之前就发布了。为了让它们在一起工作,仍然有很多挑战。这篇文章点明了Hibernate Struts之间的一些鸿沟,尤其关系到面向对象建模方面。文章也描述了如何在两者间搭起桥梁,给出了一个基于扩展Struts的解决方案。所有的基于Hibernate Struts构建的Web应用都能从这个通用的扩展中获益。

在Hibernate in Action(Manning,2004十月)这本书里,作者Christian Bauer和Gavin King揭示了面向对象世界的模型和关系数据模型,两个世界的范例是不一致的。Hibernate非常成功地在存储层(persistence Layer)将两者粘合在一起。但是领域模型(domain model)(也就是Model-View-Controller的model layer)和HTML页面(MVC的View Layer)仍然存在不一致。在这篇文章中,我们将检查这种不一致,并且探索解决的方案。

让我们先看一个经典的parent-child关系例子(看下面的代码):product和category.Category类定义了一个类型为long的标示符id和一个类型为String的属性name.Product类也有一个类型为long的标示符id和一个类型为Category的属性category,表示了多对一的关系(也就是说很多product可以属于一个Category)

复制

/**  * @hibernate.class table="CATEGORY" */   public class Category {   private Long id;   private String name;   /**  * @hibernate.id generator-class="native" column="CATEGORY_ID" */   public Long getId() {  return id;   }   public void setId(Long id) {  this.id = id;   }   /**  * @hibernate.property column="NAME" */   public String getName() {  return name;   }   public void setName(Long name) {  this.name = name;   }  }  /**  * @hibernate.class table="PRODUCT" */  public class Product {   private Long id;   private Category category;   /**  * @hibernate.id generator-class="native" column="PRODUCT_ID" */   public Long getId() {  return id;   }   public void setId(Long id) {  this.id = id;   }   /**  * @hibernate.many-to-one
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

  • 22.

  • 23.

  • 24.

  • 25.

  • 26.

  • 27.

  • 28.

  • 29.

  • 30.

  • 31.

  • 32.

  • 33.

  • 34.

  • 35.

  • 36.

  • 37.

  • 38.

  • 39.

  • 40.

  • 41.

  • 42.

【编辑推荐】

  1. Hibernate对数据索引进行缓存

  2. 剖析Hibernate主键生成几种常用方式

  3. 浅析Hibernate实现实体对象延迟加载

  4. Hibernate集合类型的延迟加载特性

  5. 概括Hibernate属性延迟加载

7    2009-09-28 15:14:45    Hibernate Struts