Hibernate one to many mapping is one of the mapping technique you should mastering if you want to develop applications using Hibernate as a data persistence. In this tutorial i will give an example of hibernate one to many mapping with practical example of relation between entity Fakultas and entity Jurusan.
#1 Relation Table Hibernate One To Many
From the picture above, it can be inferred that one Fakultas can have many Jurusan
#2 Hibernate One To Many Class Model
Adjusting with the table that we have, we create 2 entity classes which are Fakultas dan Jurusan
class Fakultas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package comboboxterhubung.entity; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name="fakultas") public class Fakultas { @Id @Column(name="id_fakultas") private String idFakultas; @Column(name="nama_fakultas") private String namaFakultas; @OneToMany(mappedBy = "fakultas") private List<Jurusan> jurusans=new ArrayList<Jurusan>(); public String getIdFakultas() { return idFakultas; } public void setIdFakultas(String idFakultas) { this.idFakultas = idFakultas; } public String getNamaFakultas() { return namaFakultas; } public void setNamaFakultas(String namaFakultas) { this.namaFakultas = namaFakultas; } public List<Jurusan> getJurusans() { return jurusans; } public void setJurusans(List<Jurusan> jurusans) { this.jurusans = jurusans; } @Override public String toString() { return namaFakultas; } } |
class Jurusan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package comboboxterhubung.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name="jurusan") public class Jurusan { @Id @Column(name="id_jurusan") private String idJurusan; @Column(name="nama_jurusan") private String namaJurusan; @JoinColumn(name="id_fakultas") @ManyToOne private Fakultas fakultas; public String getIdJurusan() { return idJurusan; } public void setIdJurusan(String idJurusan) { this.idJurusan = idJurusan; } public String getNamaJurusan() { return namaJurusan; } public void setNamaJurusan(String namaJurusan) { this.namaJurusan = namaJurusan; } public Fakultas getFakultas() { return fakultas; } public void setFakultas(Fakultas fakultas) { this.fakultas = fakultas; } @Override public String toString() { return namaJurusan; } } |
#3 COnfig File Hibernate One To Many
Put Fakultas and Jurusan class in the config file like this.
hibernate.cfg.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/comboboxterhubung?zeroDateTimeBehavior=convertToNull</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <mapping class="comboboxterhubung.entity.Fakultas"/> <mapping class="comboboxterhubung.entity.Jurusan"/> </session-factory> </hibernate-configuration> |
#4 Running Hibernate One To Many Application
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public static void main(String[] args) throws SQLException { Session session=HibernateUtil.getSessionFactory().openSession(); session.getTransaction().begin(); Fakultas fakultas=new Fakultas(); fakultas.setIdFakultas("fak-004"); fakultas.setNamaFakultas("Fakultas Hukum"); Jurusan jurusan=new Jurusan(); jurusan.setIdJurusan("hukum-001"); jurusan.setNamaJurusan("Hukum Publik"); jurusan.setFakultas(fakultas); fakultas.getJurusans().add(jurusan); session.save(fakultas); session.save(jurusan); session.getTransaction().commit(); session.close(); System.out.println("Done"); } |
Happy Coding 😀
Jaya Jaya Wijayanti!
Facebook Comments