详细概述Hibernate Struts区别
创始人
2024-06-08 07:31:20
0

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)

  1. /**  
  2. * @hibernate.class table="CATEGORY" 
  3. */   
  4. public class Category {   
  5. private Long id;   
  6. private String name;   
  7. /**  
  8. * @hibernate.id generator-class="native" column="CATEGORY_ID" 
  9. */   
  10. public Long getId() {  
  11. return id;   
  12. }   
  13. public void setId(Long id) {  
  14. this.id = id;   
  15. }   
  16. /**  
  17. * @hibernate.property column="NAME" 
  18. */   
  19. public String getName() {  
  20. return name;   
  21. }   
  22. public void setName(Long name) {  
  23. this.name = name;   
  24. }  
  25. }  
  26. /**  
  27. * @hibernate.class table="PRODUCT" 
  28. */  
  29. public class Product {   
  30. private Long id;   
  31. private Category category;   
  32. /**  
  33. * @hibernate.id generator-class="native" column="PRODUCT_ID" 
  34. */   
  35. public Long getId() {  
  36. return id;   
  37. }   
  38. public void setId(Long id) {  
  39. this.id = id;   
  40. }   
  41. /**  
  42. * @hibernate.many-to-one 

【编辑推荐】

  1. Hibernate对数据索引进行缓存
  2. 剖析Hibernate主键生成几种常用方式
  3. 浅析Hibernate实现实体对象延迟加载
  4. Hibernate集合类型的延迟加载特性
  5. 概括Hibernate属性延迟加载

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...