Java Tutorial/JPA/Column

Материал из Java эксперт
Перейти к: навигация, поиск

Change Default Column Name

File: Student.java



   <source lang="java">

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity public class Student {

 @Id
 @Column(name = "EMP_ID")
 private int id = 0;
 @Column(name = "COMM")
 private String name;
 
 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 String toString() {
   return "\n\nID:" + id + "\nName:" + name + "\n\n";
 }

}</source>





Compound Primary key

File: Student.java



   <source lang="java">

import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.IdClass; @Entity @IdClass(StudentId.class) public class Student {

   @Id private String country;
   @Id
   @Column(name="EMP_ID")
   private int id;
   private String name;
   public int getId() {
       return id;
   }
   
   public void setId(int id) {
       this.id = id;
   }
   
   public String getCountry() {
       return country;
   }
   public void setCountry(String country) {
       this.country = country;
   }
   public String getName() {
       return name;
   }
   
   public void setName(String name) {
       this.name = name;
   }
   public String toString() {
       return "Student id: " + getId() + " name: " + getName() +
              " country: " + getCountry();
   }

} class StudentId implements Serializable {

   private String country; 
   private int id; 
   public StudentId() {}
   public StudentId(String country, int id) {
     this.country = country;
     this.id = id;
   }
   public String getCountry() { return country; }
   public int getId() { return id; }
   public boolean equals(Object o) { 
       return ((o instanceof StudentId) && 
               country.equals(((StudentId)o).getCountry()) &&
               id == ((StudentId) o).getId());
   }
   public int hashCode() { 
       return country.hashCode() + id; 
   }

}</source>





Java Int Mapped To Integer

File: Student.java



   <source lang="java">

import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Student {

 @Id
 private int id = 0;
 private String name;
 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 String toString() {
   return "\n\nID:" + id + "\nName:" + name + "\n\n";
 }

}</source>





Java Long Mapped To Big Int

File: Student.java



   <source lang="java">

import java.util.Date; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.Id; @Entity public class Student {

 @Id
 private long id = 0;
 private String name;
 private Date dateOfBirth = new Date();
 @Enumerated(EnumType.STRING)
 private Gender gender;
 
 public Date getDateOfBirth() {
   return dateOfBirth;
 }
 public void setDateOfBirth(Date dateOfBirth) {
   this.dateOfBirth = dateOfBirth;
 }
 public long getId() {
   return id;
 }
 public void setId(long id) {
   this.id = id;
 }
 public String getName() {
   return name;
 }
 public void setName(String name) {
   this.name = name;
 }
 public Gender getGender() {
   return gender;
 }
 public void setGender(Gender gender) {
   this.gender = gender;
 }
 
 

}</source>





Java String Mapped To Varchar

File: Gender.java



   <source lang="java">

public enum Gender {

 MALE, FEMALE

}</source>





Set Column Length

File: Employee.java



   <source lang="java">

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Employee {

   @Id 
   @Column(length=40) 
   private String name;
   public String getName() {
       return name;
   }
   
   public void setName(String name) {
       this.name = name;
   }

}</source>





Set Precision And Scale

File: Employee.java



   <source lang="java">

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Employee {

   @Id private int id;
   private String name;
   @Column(precision=8, scale=2) 
   private float hourlyRate;
   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 float getHourlyRate() {
       return hourlyRate;
   }
   public void setHourlyRate(float salary) {
       this.hourlyRate = salary;
   }

}</source>





Specify Column Definition To Field

File: Employee.java



   <source lang="java">

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Employee {

   @Id
   @Column(name="START_DATE", columnDefinition="DATE DEFAULT CURRENT_DATE") 
   private java.sql.Date startDate;
   

}</source>





Unique, Not Nullable Column

File: Employee.java



   <source lang="java">

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Employee {

   @Id private int id;
   @Column(unique=true, nullable=false) 
   private String name;
   private long salary;
   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 toString() {
       return "Employee id: " + getId() + " name: " + getName();
   }

}</source>





Use Varchar Type As Column Type

File: Employee.java



   <source lang="java">

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @Entity public class Employee {

   @Id
   @Column(columnDefinition="VARCHAR(40)") 
   private String name;
   public String getName() {
       return name;
   }
   
   public void setName(String name) {
       this.name = name;
   }

}</source>