千里冰封
JAVA 浓香四溢
posts - 151,comments - 2801,trackbacks - 0

以前看到一本书上写的,有关定义实体BEAN的一些细节,直到今天才知道其中的差别

代码1:

/*   
 * Test.java   
 *   
 * Created on 2006年12月15日, 上午12:06   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package com.hadeslee.entity;    
   
import java.io.Serializable;    
import javax.persistence.Entity;    
import javax.persistence.GeneratedValue;    
import javax.persistence.GenerationType;    
import javax.persistence.Id;    
   
/**   
 * Entity class Test   
 *    
 * 
@author lbf   
 
*/   
@Entity   
public class Test implements Serializable {    
    
private Long id;    
    
private String name,sex,age;    
    
private int idCard;    
    
/** Creates a new instance of Test */   
    
public Test() {    
    }    
   
    
/**   
     * Gets the id of this Test.   
     * 
@return the id   
     
*/   
    @Id   
    @GeneratedValue(strategy 
= GenerationType.AUTO)    
    
public Long getId() {    
        
return this.id;    
    }    
   
    
/**   
     * Sets the id of this Test to the specified value.   
     * 
@param id the new id   
     
*/   
    
public void setId(Long id) {    
        
this.id = id;    
    }    
    
public void setNameID(int ids){    
        
this.idCard=ids;    
    }    
    
public int getNameID(){    
        
return idCard;    
    }    
   
    
/**   
     * Returns a hash code value for the object.  This implementation computes    
     * a hash code value based on the id fields in this object.   
     * 
@return a hash code value for this object.   
     
*/   
    @Override   
    
public int hashCode() {    
        
int hash = 0;    
        hash 
+= (this.id != null ? this.id.hashCode() : 0);    
        
return hash;    
    }    
   
    
/**   
     * Determines whether another object is equal to this Test.  The result is    
     * true if and only if the argument is not null and is a Test object that    
     * has the same id field values as this object.   
     * 
@param object the reference object with which to compare   
     * 
@return true if this object is the same as the argument;   
     * false otherwise.   
     
*/   
    @Override   
    
public boolean equals(Object object) {    
        
// TODO: Warning - this method won't work in the case the id fields are not set    
        if (!(object instanceof Test)) {    
            
return false;    
        }    
        Test other 
= (Test)object;    
        
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;    
        
return true;    
    }    
   
    
/**   
     * Returns a string representation of the object.  This implementation constructs    
     * that representation based on the id fields.   
     * 
@return a string representation of the object.   
     
*/   
    @Override   
    
public String toString() {    
        
return "com.hadeslee.entity.Test[id=" + id + "]";    
    }    
   
    
public String getName() {    
        
return name;    
    }    
   
    
public void setName(String name) {    
        
this.name = name;    
    }    
   
    
public String getSex() {    
        
return sex;    
    }    
   
    
public void setSex(String sex) {    
        
this.sex = sex;    
    }    
   
    
public String getAge() {    
        
return age;    
    }    
   
    
public void setAge(String age) {    
        
this.age = age;    
    }    
        
}    

代码2:

 

/*   
 * Test.java   
 *   
 * Created on 2006年12月15日, 上午12:06   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package com.hadeslee.entity;    
   
import java.io.Serializable;    
import javax.persistence.Entity;    
import javax.persistence.GeneratedValue;    
import javax.persistence.GenerationType;    
import javax.persistence.Id;    
   
/**   
 * Entity class Test   
 *    
 * 
@author lbf   
 
*/   
@Entity   
public class Test implements Serializable {    
    @Id   
    @GeneratedValue(strategy 
= GenerationType.AUTO)    
    
private Long id;    
    
private String name,sex,age;    
    
private int idCard;    
    
/** Creates a new instance of Test */   
    
public Test() {    
    }    
   
    
/**   
     * Gets the id of this Test.   
     * 
@return the id   
     
*/   
       
    
public Long getId() {    
        
return this.id;    
    }    
   
    
/**   
     * Sets the id of this Test to the specified value.   
     * 
@param id the new id   
     
*/   
    
public void setId(Long id) {    
        
this.id = id;    
    }    
    
public void setNameID(int ids){    
        
this.idCard=ids;    
    }    
    
public int getNameID(){    
        
return idCard;    
    }    
   
    
/**   
     * Returns a hash code value for the object.  This implementation computes    
     * a hash code value based on the id fields in this object.   
     * 
@return a hash code value for this object.   
     
*/   
    @Override   
    
public int hashCode() {    
        
int hash = 0;    
        hash 
+= (this.id != null ? this.id.hashCode() : 0);    
        
return hash;    
    }    
   
    
/**   
     * Determines whether another object is equal to this Test.  The result is    
     * true if and only if the argument is not null and is a Test object that    
     * has the same id field values as this object.   
     * 
@param object the reference object with which to compare   
     * 
@return true if this object is the same as the argument;   
     * false otherwise.   
     
*/   
    @Override   
    
public boolean equals(Object object) {    
        
// TODO: Warning - this method won't work in the case the id fields are not set    
        if (!(object instanceof Test)) {    
            
return false;    
        }    
        Test other 
= (Test)object;    
        
if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;    
        
return true;    
    }    
   
    
/**   
     * Returns a string representation of the object.  This implementation constructs    
     * that representation based on the id fields.   
     * 
@return a string representation of the object.   
     
*/   
    @Override   
    
public String toString() {    
        
return "com.hadeslee.entity.Test[id=" + id + "]";    
    }    
   
    
public String getName() {    
        
return name;    
    }    
   
    
public void setName(String name) {    
        
this.name = name;    
    }    
   
    
public String getSex() {    
        
return sex;    
    }    
   
    
public void setSex(String sex) {    
        
this.sex = sex;    
    }    
   
    
public String getAge() {    
        
return age;    
    }    
   
    
public void setAge(String age) {    
        
this.age = age;    
    }    
        
}    


代码1和代码2唯一的差别就是@Id的注释地方不同了

同样是注释主键,当在直接用在变量上注释时,如果其它的成员变量没有指定名字,则数据库生成的表的各列名字将以定义的成员变量的变量名为准

当用在getter方法注释时,则数据库生成的表的各列名字将取getXXXX的XXXX名字,将不再取定义的成员变量名

像上面的例子中,代码1会有IdCard这一列,则代码2取而代之的将是NameID这一列.这看上去是一个小小的差别,但是了解了终究是好事.呵呵.终于懂清楚在get上注释和直接在成员变量上注释的差别了,一般来说是不会有什么差别的,一般标准 的JAVABEAN都是成员变量名和getter,setter签名一样的.




尽管千里冰封
依然拥有晴空

你我共同品味JAVA的浓香.
posted on 2007-09-11 15:45 千里冰封 阅读(979) 评论(0)  编辑  收藏 所属分类: JAVAEE

只有注册用户登录后才能发表评论。


网站导航: