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