詳細概述Hibernate Struts區(qū)別
Hibernate還是比較常用的,于是我研究了一下Hibernate struts的關(guān)系,在這里拿出來和大家分享一下,希望對大家有用。
Hibernate struts是當前市面上幾個***的開源的庫之一。它們很有效率,是程序員在開發(fā)Java企業(yè)應(yīng)用,挑選幾個競爭的庫的***。雖然它們經(jīng)常被一起應(yīng)用,但是Hibernate的設(shè)計目標并不是和Struts一起使用,而Struts在Hibernate誕生好多年之前就發(fā)布了。為了讓它們在一起工作,仍然有很多挑戰(zhàn)。這篇文章點明了Hibernate Struts之間的一些鴻溝,尤其關(guān)系到面向?qū)ο蠼7矫?。文章也描述了如何在兩者間搭起橋梁,給出了一個基于擴展Struts的解決方案。所有的基于Hibernate Struts構(gòu)建的Web應(yīng)用都能從這個通用的擴展中獲益。
在Hibernate in Action(Manning,2004十月)這本書里,作者Christian Bauer和Gavin King揭示了面向?qū)ο笫澜绲哪P秃完P(guān)系數(shù)據(jù)模型,兩個世界的范例是不一致的。Hibernate非常成功地在存儲層(persistence Layer)將兩者粘合在一起。但是領(lǐng)域模型(domain model)(也就是Model-View-Controller的model layer)和HTML頁面(MVC的View Layer)仍然存在不一致。在這篇文章中,我們將檢查這種不一致,并且探索解決的方案。
讓我們先看一個經(jīng)典的parent-child關(guān)系例子(看下面的代碼):product和category.Category類定義了一個類型為long的標示符id和一個類型為String的屬性name.Product類也有一個類型為long的標示符id和一個類型為Category的屬性category,表示了多對一的關(guān)系(也就是說很多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
【編輯推薦】