Composite Primary Keys In Hibernate | Code Factory

Code Factory
2 min readNov 30, 2019

Reference Link : Link

Download Code and Jars : Link

File : ProjectId.java

package com.codeFactory.bean;import java.io.Serializable;public class ProjectId implements Serializable {int departmentId;
int projectId;
public int getDepartmentId() {
return departmentId;
}
public void setDepartmentId(int departmentId) {
this.departmentId = departmentId;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
}

File : Project.java

package com.codeFactory.bean;import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
@Entity
@IdClass(ProjectId.class)
public class Project {
@Id
int departmentId;
@Id
int projectId;
public int getDepartmentId() {
return departmentId;
}
public void setDepartmentId(int departmentId) {
this.departmentId = departmentId;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
}

File : Action.java

package com.codeFactory.action;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import com.codeFactory.bean.Project;
public class Action {static AnnotationConfiguration annotationConfiguration;
static SessionFactory sessionFactory;
public static void main(String args[])
{
annotationConfiguration = new AnnotationConfiguration();
sessionFactory = annotationConfiguration.configure("hibernate.cfg.xml")
.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = null;
try
{
transaction = session.beginTransaction();
Project project = new Project();
project.setProjectId(1);
project.setDepartmentId(2);
session.save(project);
transaction.commit();
System.out.println("Saved.");
session.close();
}
catch (Exception e)
{
System.out.println("Exception : " + e);
}
}
}

File : hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC  
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<mapping class="com.codeFactory.bean.Project" />
</session-factory>
</hibernate-configuration>

--

--