成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate Annotations維護(hù)驗(yàn)證邏輯

開發(fā) 后端
本文將向您介紹如何使用Hibernate Annotations 的 Validator 組件在 Web 應(yīng)用程序中輕松構(gòu)建并維護(hù)驗(yàn)證邏輯。

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate Annotations,包括介紹HibernateDoclet等方面。

盡管在 Web 應(yīng)用程序中盡可能多的層次中構(gòu)建數(shù)據(jù)驗(yàn)證非常重要,但是這樣做卻非常耗時(shí),以至于很多開發(fā)人員都會(huì)干脆忽略這個(gè)步驟 —— 這可能會(huì)導(dǎo)致今后大量問(wèn)題的產(chǎn)生。但是隨著***版本的 Java 平臺(tái)中引入了注釋,驗(yàn)證變得簡(jiǎn)單得多了。本文將向您介紹如何使用Hibernate Annotations 的 Validator 組件在 Web 應(yīng)用程序中輕松構(gòu)建并維護(hù)驗(yàn)證邏輯。

有時(shí)會(huì)有一種工具,它可以真正滿足開發(fā)人員和架構(gòu)師的需求。開發(fā)人員在***次下載這種工具當(dāng)天就可以在自己的應(yīng)用程序中開始使用這種工具。理論上來(lái)說(shuō),這種工具在開發(fā)人員花費(fèi)大量時(shí)間來(lái)掌握其用法之前就可以從中獲益。架構(gòu)師也很喜歡這種工具,因?yàn)樗梢詫㈤_發(fā)人員導(dǎo)向更高理論層次的實(shí)現(xiàn)。Hibernate Annotations 的 Validator 組件就是一種這樣的工具。

Java SE 5 為 Java 語(yǔ)言提供了很多需要的增強(qiáng)功能,不過(guò)其他增強(qiáng)功能可能都不如 注釋 這樣潛力巨大。使用 注釋,我們就終于具有了一個(gè)標(biāo)準(zhǔn)、一級(jí)的元數(shù)據(jù)框架為 Java 類使用。Hibernate 用戶手工編寫 *.hbm.xml 文件已經(jīng)很多年了(或者使用 XDoclet 來(lái)自動(dòng)實(shí)現(xiàn)這個(gè)任務(wù))。如果手工創(chuàng)建了 XML 文件,那就必須對(duì)每個(gè)所需要的持久屬性都更新這兩個(gè)文件(類定義和 XML 映射文檔)。使用 HibernateDoclet 可以簡(jiǎn)化這個(gè)過(guò)程,但是這需要我們確認(rèn)自己的 HibernateDoclet 版本支持要使用的 Hibernate 的版本。doclet 信息在運(yùn)行時(shí)也是不可用的,因?yàn)樗痪帉懙搅?Javadoc 風(fēng)格的注釋中了。Hibernate Annotations通過(guò)提供一個(gè)標(biāo)準(zhǔn)、簡(jiǎn)明的映射類的方法和所添加的運(yùn)行時(shí)可用性來(lái)對(duì)這些方式進(jìn)行改進(jìn)。

使用 HibernateDoclet 的 Hibernate 映射代碼

  1. /**  
  2. * @hibernate.property column="NAME" length="60" not-null="true" 
  3. */  
  4. public String getName() {  
  5. return this.name;  
  6. }  
  7.  
  8. /**  
  9. * @hibernate.many-to-one column="AGENT_ID" not-null="true" cascade="none"   
  10. *outer-join="false" lazy="true" 
  11. */  
  12. public Agent getAgent() {  
  13. return agent;  
  14. }  
  15. /**  
  16. * @hibernate.set lazy="true" inverse="true" cascade="all" table="DEPARTMENT"   
  17. * @hibernate.collection-one-to-many class="com.triview.model.Department" 
  18. * @hibernate.collection-key column="DEPARTMENT_ID" not-null="true" 
  19. */  
  20. public List<Department> getDepartment() {  
  21. return department;  
  22. }  

使用 Hibernate Annotations 的 Hibernate 映射代碼

  1. @NotNull  
  2. @Column(name = "name")  
  3. @Length(min = 1max = NAME_LENGTH)   
  4. // NAME_LENGTH is a constant declared elsewhere  
  5. public String getName() {  
  6. return name;  
  7. }  
  8.  
  9. @NotNull  
  10. @ManyToOne(cascade = {CascadeType.MERGE }, fetch = FetchType.LAZY)  
  11. @JoinColumn(name = "agent_id")  
  12. public Agent getAgent() {  
  13. return agent;  
  14. }  
  15.  
  16. @OneToMany(mappedBy = "customer"fetch = FetchType.LAZY)  
  17. public List<Department> getDepartment() {  
  18. return department;  
  19. }  

如果使用 HibernateDoclet,那么直到生成 XML 文件或運(yùn)行時(shí)才能捕獲錯(cuò)誤。使用 注釋,在編譯時(shí)就可以檢測(cè)出很多錯(cuò)誤;或者如果在編輯時(shí)使用了很好的 IDE,那么在編輯時(shí)就可以檢測(cè)出部分錯(cuò)誤。在從頭創(chuàng)建應(yīng)用程序時(shí),可以利用 hbm2ddl 工具為自己的數(shù)據(jù)庫(kù)從 hbm.xml 文件中生成 DDL。一些重要的信息 —— 比如name 屬性的***長(zhǎng)度必須是 60 個(gè)字符,或者 DDL 應(yīng)該添加非空約束 —— 都被從 HibernateDoclet 項(xiàng)添加到 DDL 中。當(dāng)使用注釋時(shí),我們可以以類似的方式自動(dòng)生成 DDL。

【編輯推薦】

  1. 剖析Hibernate Extensions
  2. 介紹Hibernate Iterator方法
  3. Hibernate Session緩存經(jīng)驗(yàn)總結(jié)
  4. 簡(jiǎn)單介紹Hibernate配置Proxool
  5. 淺談Hibernate outer-join參數(shù)
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-09-29 10:12:03

Hibernate A

2009-09-28 17:27:27

Hibernate A

2009-09-27 17:07:04

Hibernate J

2009-06-03 16:27:27

Hibernate一對(duì)一關(guān)系

2015-07-08 16:25:53

Xcodenullability

2012-02-08 14:24:35

HibernateJava

2021-08-03 10:18:22

物聯(lián)網(wǎng)預(yù)測(cè)性維護(hù)規(guī)范性維護(hù)

2009-06-18 10:41:18

Hibernate3.Hibernate3.

2009-06-18 11:43:40

Hibernate uHibernate s

2015-06-11 15:17:56

2009-09-28 14:49:44

Hiberante映射

2009-06-02 14:46:26

Hibernate關(guān)系映射教程

2015-09-01 13:53:53

IT維護(hù)

2012-02-08 11:15:38

HibernateJava

2009-09-21 17:33:50

Hibernate基礎(chǔ)

2009-09-29 16:04:29

Hibernate S

2009-09-29 16:41:58

Hibernate S

2009-09-29 17:11:23

Hibernate T

2009-06-16 16:10:59

Hibernate性能

2012-02-02 16:13:29

HibernateJava
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中日av| 久久久久国产精品 | 久久亚洲综合 | 成人免费看黄 | 国产精品视频一区二区三区四区国 | 欧美vide | av电影手机在线看 | 99久久影院| 午夜天堂 | 欧美精品一区二区三区蜜桃视频 | 国内自拍第一页 | 欧美激情在线精品一区二区三区 | 成人精品毛片 | 欧美一区二区三区高清视频 | 国内自拍偷拍视频 | 精品一区二区在线观看 | 狠狠操狠狠色 | 99久久久99久久国产片鸭王 | 中文字幕一区在线观看视频 | 精品国产免费一区二区三区五区 | 91精品国产一区二区三区 | 农村妇女毛片精品久久久 | 色综合久久久 | 欧美黑人国产人伦爽爽爽 | 精品亚洲一区二区三区 | 在线观看国产视频 | 一本一道久久a久久精品蜜桃 | 日韩亚洲一区二区 | 91.色| 日本不卡免费新一二三区 | 亚洲在线免费观看 | 久久久久久久一区 | 亚洲欧洲日韩精品 中文字幕 | 在线免费小视频 | 午夜网址 | 日韩国产欧美在线观看 | 日日日干干干 | 国产成人艳妇aa视频在线 | 亚洲一区二区三区视频免费观看 | 日韩在线小视频 | 大香在线伊779 |