淺談用Hibernate做模型層時抽取ID為基類
作者:hyanqing1
在做項目當中,我們每時每刻都要用到模型層,就比如用Struts+Hibernate做也是一樣,本文就將談談用Hibernate做模型層時抽取ID為基類的實現(xiàn)。
在做模型時,我們總是定義很多的Javabean,可以用它來傳替數(shù)據(jù)。我們用Hibernate做持久層時,在建表時總是把字段id設置成主鍵,它是與項目,可以說沒什么關系,這樣我們更新數(shù)據(jù)就更安全了,現(xiàn)在我們來把他抽取出來,作為模型層的基類,在其中我們可以重寫equals(),hashCode(),toString()方法了。代碼如下:
Java代碼
- packagecom.hyq.blog.model;
- import java.io.Serializable;
- import org.apache.commons.lang.builder.EqualsBuilder;
- import org.apache.commons.lang.builder.HashCodeBuilder;
- import org.apache.commons.lang.builder.ReflectionToStringBuilder;
- public classBaseModel implements Serializable{
- private String id;
- public String getId(){
- return id;
- }
- public void setId(String id){
- this.id=id;
- }
- //重寫equals()方法
- public boolean equals(Object obj){
- if(this==obj)return true;
- if(!(obj instance BaseModel))return false;
- BaseModel target=(BaseModel)obj;
- if(this.getId()!=null&&this.getId().length()>0){
- return this.getId().equals(target.getId());
- }
- if(target.getId()!=null&&target.getId().length()>0){
- return false;
- }
- return EqualsBuilder.reflectionEquals(this,obj);
- }
- //重寫hashCode()方法
- public int hashCode(){
- if(this.getId()!=null&&this.getId().lenght()>0){
- return this.getId().hashCode();
- }
- return HashCodeBuilder.reflectionHashCode(this);
- }
- //重寫toString()方法
- public String toString(){
- return ReflectionToStringBuilder.toString(this);
- }
- }
【編輯推薦】
責任編輯:彭凡
來源:
javaeye