@Id字段映射和方法映射
2009-01-22 15:18
274 查看
http://www.blogjava.net/hadeslee/archive/2007/09/11/144275.html
EJB初学日记(5)
以前看到一本书上写的,有关定义实体BEAN的一些细节,直到今天才知道其中的差别
代码1:
代码2:
代码1和代码2唯一的差别就是@Id的注释地方不同了
同样是注释主键,当在直接用在变量上注释时,如果其它的成员变量没有指定名字,则数据库生成的表的各列名字将以定义的成员变量的变量名为准
当用在getter方法注释时,则数据库生成的表的各列名字将取getXXXX的XXXX名字,将不再取定义的成员变量名
像上面的例子中,代码1会有IdCard这一列,则代码2取而代之的将是NameID这一列.这看上去是一个小小的差别,但是了解了终究是好事.呵呵.终于懂清楚在get上注释和直接在成员变量上注释的差别了,一般来说是不会有什么差别的,一般标准 的JAVABEAN都是成员变量名和getter,setter签名一样的.
EJB初学日记(5)
以前看到一本书上写的,有关定义实体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签名一样的.
相关文章推荐
- 同一字段多ID存储名称映射
- Hibernate映射文件id的generator配置方法
- 缓存字段ID和方法ID
- Hibernate注解映射字段的位置到底应该放在属性还是方法上
- JNI由浅入深_8_JNI缓存字段和方法ID
- hibernate统一数据的ID统一数据库相同字段的方法 继承的写法
- EASBOS根据id获取对象方法来进行过滤字段
- 映射的数据字典的id来自于别的表的字段
- 缓存字段和方法ID
- EF实体类指定部分属性不映射成数据库字段的方法
- hibernate使用annotation配置时将@Id配置到字段field上和get方法上的区别
- 插入数据到oracle,实现id字段自增的方法
- 根据基础数据表id获取数据库中关联表字段内容方法
- 数据自动映射时模型类非关联性字段映射方法
- Android JNI 调用时缓存字段和方法ID示例
- hibernate字段映射的位置(放在属性前,还是放在方法前??)
- SQL中某字段设为自动编号及清除后ID重新从1开始计算的方法
- sql server建表时设置ID字段自增的简单方法
- 字段 bit 、tinyint(1) 使用 boolean 类型映射解决方法
- JNI由浅入深_8_JNI缓存字段和方法ID