File: Employee.java
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Transient;
@Entity
public class Employee implements java.io.Serializable {
private String firstName;
private EmployeePK pk;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "lastName", column = @Column(name = "LAST_NAME")),
@AttributeOverride(name = "ssn", column = @Column(name = "SSN")) })
public EmployeePK getPk() {
return pk;
}
public void setPk(EmployeePK pk) {
this.pk = pk;
}
@Transient
public String getLastName() {
return pk.getLastName();
}
@Transient
public long getSsn() {
return pk.getSsn();
}
}
File: EmployeePK.java
import javax.persistence.Column;
import javax.persistence.Embeddable;
@Embeddable
public class EmployeePK implements java.io.Serializable {
private String lastName;
private long ssn;
public EmployeePK() {
}
public EmployeePK(String lastName, long ssn) {
this.lastName = lastName;
this.ssn = ssn;
}
@Column(name = "CUSTOMER_LAST_NAME")
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Column(name = "CUSTOMER_SSN")
public long getSsn() {
return ssn;
}
public void setSsn(long ssn) {
this.ssn = ssn;
}
public boolean equals(Object obj) {
if (obj == this)
return true;
if (!(obj instanceof EmployeePK))
return false;
EmployeePK pk = (EmployeePK) obj;
if (!lastName.equals(pk.lastName))
return false;
if (ssn != pk.ssn)
return false;
return true;
}
public int hashCode() {
return lastName.hashCode() + (int) ssn;
}
}
File: Helper.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class Helper {
public static void checkData() throws Exception {
Class.forName("org.hsqldb.jdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:hsqldb:data/tutorial", "sa", "");
Statement st = conn.createStatement();
ResultSet mrs = conn.getMetaData().getTables(null, null, null, new String[] { "TABLE" });
while (mrs.next()) {
String tableName = mrs.getString(3);
System.out.println("\n\n\n\nTable Name: "+ tableName);
ResultSet rs = st.executeQuery("select * from " + tableName);
ResultSetMetaData metadata = rs.getMetaData();
while (rs.next()) {
System.out.println(" Row:");
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.println(" Column Name: "+ metadata.getColumnLabel(i + 1)+ ", ");
System.out.println(" Column Type: "+ metadata.getColumnTypeName(i + 1)+ ": ");
Object value = rs.getObject(i + 1);
System.out.println(" Column Value: "+value+"\n");
}
}
}
}
}
File: Main.java
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
public class Main {
static EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAService");
static EntityManager em = emf.createEntityManager();
public static void main(String[] a) throws Exception {
em.getTransaction().begin();
em.getTransaction().commit();
em.close();
emf.close();
Helper.checkData();
}
}
File: persistence.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence" version="1.0">