JPA Tutorial - JPA Column Name Example








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;

Example

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();
  }
}


Download Column_Name.zip

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