JPA教程 – JPA列名示例
默认情况下,JPA使用字段名作为数据库表列名。我们可以使用Column注释来更改默认值。
以下代码设置id字段以使用EMP_ID作为列名称。
@Column(name = "EMP_ID") private int id;
例子
以下代码来自Professor.java。
package cn.w3cschool.common; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Professor { @Id @Column(name = "EMP_ID") private int id; private String name; @Column(name = "SAL") private long salary; @Column(name = "COMM") private String comments; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public long getSalary() { return salary; } public void setSalary(long salary) { this.salary = salary; } public String getComments() { return comments; } public void setComments(String comments) { this.comments = comments; } public String toString() { return "Employee id: " + getId() + " name: " + getName() + " salary: " + getSalary() + " comments: " + getComments(); } }
下面的代码来自PersonDaoImpl.java。
package cn.w3cschool.common; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.TypedQuery; import org.springframework.transaction.annotation.Transactional; @Transactional public class PersonDaoImpl { public void test() { Professor emp = new Professor(); emp.setId(1); emp.setName("name"); emp.setSalary(12345); em.persist(emp); } @PersistenceContext private EntityManager em; }
以下代码来自App.java。
package cn.w3cschool.common; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "applicationContext.xml"); PersonDaoImpl dao = (PersonDaoImpl) context.getBean("personDao"); dao.test(); context.close(); Helper.checkData(); } }
下载 Column_Name.zip
这里是运行上面的代码后的数据库表转储。我们可以看到列名是EMP_ID id字段。
Table Name: PROFESSOR Row: Column Name: EMP_ID, Column Type: INTEGER: Column Value: 1 Column Name: COMM, Column Type: VARCHAR: Column Value: null Column Name: NAME, Column Type: VARCHAR: Column Value: name Column Name: SAL, Column Type: BIGINT: Column Value: 12345