今天看到一本书上写的,有关定义实体BEAN的一些细节,直到今天才知道其中的差别
代码如下:
java 代码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
- * <code>true</code> 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 <code>true</code> if this object is the same as the argument;
- * <code>false</code> 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;
- }
- }
java 代码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
- * <code>true</code> 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 <code>true</code> if this object is the same as the argument;
- * <code>false</code> 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签名一样的.
好了,睡觉去了