By default JPA uses the field name as the database table column name. We can use Column annotation to change the default value.
The following code sets the id field to use the EMP_ID as column name.
@Column(name = "EMP_ID") private int id;
The following code is from Professor.java.
package com.java2s.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(); } }
The following code is from PersonDaoImpl.java.
package com.java2s.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; }
The following code is from App.java.
package com.java2s.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(); } }
Here is the database table dump after running the code above. We can see that
the column name is EMP_ID
for id field.
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