JPA provides @Embeddable and @Embeded to help us achieve this goal.
Create a new Parent class
package com.mqin.hibernate.demo;
import javax.persistence.Column;
import javax.persistence.Embeddable;
@Embeddable
public class Parent {
@Column(name="Parent_Name")
private String name;
@Column(name="Parent_PhoneNo")
private String phoneNo;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
}
Student code
@Entity
@Table(name = "STUDENT_INFO")
public class Student {
@Id
@GeneratedValue
@Column(name = "STUDENT_ID")
private int ID;
@Column(name = "FIRST_NAME")
private String firstName;
@Column(name = "LAST_NAME")
private String lastName;
@Embedded
private Parent parent;
Test code
Student student = new Student();
student.setFirstName("James");
student.setLastName("Bond");
Parent parent = new Parent();
parent.setName("Bruce Bond");
parent.setPhoneNo("8888 8888");
student.setParent(parent);
Console output
Hibernate: drop table if exists STUDENT_INFO Hibernate: create table STUDENT_INFO (STUDENT_ID integer not null auto_increment, FIRST_NAME varchar(255), LAST_NAME varchar(255), Parent_Name varchar(255), Parent_PhoneNo varchar(255), primary key (STUDENT_ID)) Hibernate: insert into STUDENT_INFO (FIRST_NAME, LAST_NAME, Parent_Name, Parent_PhoneNo) values (?, ?, ?, ?)
See what's in database
Note: Use @EmbeddedId if you would like some object to be your primary key.



No comments:
Post a Comment