浅谈用Hibernate做模型层时抽取ID为基类

开发 后端
在做项目当中,我们每时每刻都要用到模型层,就比如用Struts+Hibernate做也是一样,本文就将谈谈用Hibernate做模型层时抽取ID为基类的实现。

在做模型时,我们总是定义很多的Javabean,可以用它来传替数据。我们用Hibernate做持久层时,在建表时总是把字段id设置成主键,它是与项目,可以说没什么关系,这样我们更新数据就更安全了,现在我们来把他抽取出来,作为模型层的基类,在其中我们可以重写equals(),hashCode(),toString()方法了。代码如下:

Java代码

  1. packagecom.hyq.blog.model;     
  2.     
  3. import java.io.Serializable;     
  4.     
  5. import org.apache.commons.lang.builder.EqualsBuilder;     
  6. import org.apache.commons.lang.builder.HashCodeBuilder;     
  7. import org.apache.commons.lang.builder.ReflectionToStringBuilder;     
  8.     
  9. public classBaseModel implements Serializable{     
  10.     
  11. private String id;     
  12.     
  13. public String getId(){     
  14. return id;     
  15. }     
  16. public void setId(String id){     
  17. this.id=id;     
  18. }     
  19.     
  20. //重写equals()方法     
  21. public boolean equals(Object obj){     
  22. if(this==obj)return true;     
  23. if(!(obj instance BaseModel))return false;     
  24.     
  25. BaseModel target=(BaseModel)obj;     
  26. if(this.getId()!=null&&this.getId().length()>0){     
  27. return this.getId().equals(target.getId());     
  28. }     
  29. if(target.getId()!=null&&target.getId().length()>0){     
  30. return false;     
  31. }     
  32.     
  33.     
  34. return EqualsBuilder.reflectionEquals(this,obj);     
  35. }     
  36.     
  37. //重写hashCode()方法     
  38. public int hashCode(){     
  39. if(this.getId()!=null&&this.getId().lenght()>0){     
  40. return this.getId().hashCode();     
  41. }     
  42. return HashCodeBuilder.reflectionHashCode(this);     
  43. }     
  44.     
  45. //重写toString()方法     
  46. public String toString(){     
  47. return ReflectionToStringBuilder.toString(this);     
  48. }     
  49. }    

【编辑推荐】

  1. Hibernate对各数据库的连接方言
  2. Hibernate支持Access方言源代码
  3. eclipse下生成HibernateDAO中的几个方法
  4. hibernate中update与saveOrUpdate的区别
  5. HIBERNATE方言
责任编辑:彭凡 来源: javaeye
相关推荐

2009-09-23 17:07:31

Hibernate C

2009-09-21 13:05:18

Hibernate u

2009-09-28 15:47:59

Hibernate O

2009-09-29 10:46:58

Hibernate领域

2009-09-22 10:09:21

Hibernate S

2009-09-25 10:53:40

Hibernate S

2009-09-28 13:43:28

使用Hibernate

2009-09-22 13:41:10

直接使用Hiberna

2009-09-28 13:39:01

Hibernate工作

2009-09-27 10:02:29

定制Hibernate

2009-09-29 16:16:58

Hibernate H

2009-09-23 10:23:03

Hibernate检查

2009-09-29 10:40:26

Hibernate业务

2009-09-29 10:57:25

设置Hibernate

2009-09-29 10:37:29

Hibernate持久

2009-09-21 17:46:34

Hibernate持久

2009-09-29 15:52:26

Hibernate X

2009-09-27 14:06:57

Hibernate o

2009-09-21 17:17:11

Hibernate二级

2009-09-23 14:40:17

Hibernate F
点赞
收藏

51CTO技术栈公众号