淺談?dòng)肏ibernate做模型層時(shí)抽取ID為基類
作者:hyanqing1
在做項(xiàng)目當(dāng)中,我們每時(shí)每刻都要用到模型層,就比如用Struts+Hibernate做也是一樣,本文就將談?wù)動(dòng)肏ibernate做模型層時(shí)抽取ID為基類的實(shí)現(xiàn)。
在做模型時(shí),我們總是定義很多的Javabean,可以用它來(lái)傳替數(shù)據(jù)。我們用Hibernate做持久層時(shí),在建表時(shí)總是把字段id設(shè)置成主鍵,它是與項(xiàng)目,可以說(shuō)沒(méi)什么關(guān)系,這樣我們更新數(shù)據(jù)就更安全了,現(xiàn)在我們來(lái)把他抽取出來(lái),作為模型層的基類,在其中我們可以重寫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);
- }
- }
【編輯推薦】
責(zé)任編輯:彭凡
來(lái)源:
javaeye