Persistence Sederhana dengan NetBeans

dokumen-dokumen yang mirip
CRUD Hibernate Java. Oleh: Yudi Setiawan

CRUD Hibernate Java. Oleh: Yudi Setiawan

Kamus Perintah Hibernate Criteria Query MySQL

IMPLEMENTASI PERSISTENCE DENGAN FRAMEWORK HIBERNATE UNTUK MENINGKATKAN EFEKTIFITAS PEMROGRAMAN

Aplikasi komputer selalu terdiri dari: Logika bisnis Interaksi dengan sistem lain Antarmuka dan peyimpanan data (persistence) Data yang diproses di

Praktikum 07. Penggunaan JSF dan JPA pada aplikasi Web

Beyond Java ORM with Versant JPA (Part 1) German Viscuso Developer Relations Manager Versant Corporation March 2012

Object Relational Mapping < ORM > Bagian Pertama

Praktikum 05. Penggunaan JSF dan JPA pada aplikasi Web

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

Firma Firmansyah Adi B. Resume Web Service

BAHASA PEMROGRAMAN JAVA

JAVA PERSISTENCE (REVIEW)

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

visit :

Mudafiq R. Pratama

Pemrograman Database Java

- Menuliskan business logic dari aplikasi untuk mengakses data source

BAB II VARIABEL DAN TIPE DATA

Proses CRUD Dengan Hibernate Annotations Menggunakan Netbean 6.0

Inheritance dan Kata Kunci static

2 TIPE DATA DAN VARIABEL

Mudafiq R. Pratama

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

STEP BY STEP IN JAVA NETBEANS PROGRAMMING BY SUYANTO

DAO design pattern diimplementasi dengan beberapa langkah, yaitu :

INSTRUKSI PENCABANGAN

DASAR PEMOGRAMAN JAVA

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

KEAHLIAN PEMROGAMAN JAVA

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

Tutorial Web Service JAX-WS Konverter Suhu dengan NetBeans

Praktikum JTable. Gambar 1

PEMAHAMAN DASAR DASAR JAVA

Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.

IMPLEMENTASI DAN PEMBAHASAN SISTEM

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Praktikum 3 Konsep Class, Attribute dan Method

Bahasa Pemrograman :: Polimorfism and Abstraction

PBO LANJUT TUTORIAL JPA & SWING MENGGUNAKAN NETBEANS. Niko Ibrahim, MIT

TIPE DATA Pertemuan (K-03/L-03)

I. Tujuan Instruksional Umum Mengenal konsep dasar berorientasi objek Memahami dan dapat mengimplementasikan Kelas dan Objek pada java.

Pengenalan APLIKASI DATABASE

Object Oriented Programming

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

Pertemuan 2 Struktur Kontrol Percabangan

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

KONSEP OOP: PEWARISAN / INHERITANCE

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

Pengenalan JavaScript

Tipe Data Floating Point Tipe data yng digunakan untuk menampung bilangan desimal

Badiyanto, S.Kom., M.Kom. PBO java

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

Konsep Inheritance. Praktikum 8 Pemrograman Berbasis Obyek

SUMBER BELAJAR PENUNJANG PLPG

Manipulasi Database Dengan Netbeans

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

Pertemuan 7. Create, Read, Update, Delete Pada SQL Lite (Tampilan)

IKG2I4 / Software Project I

Tutorial Java Desktop 2 Melakukan Koneksi ke Database JavaDB

- Menuliskan business logic dari aplikasi untuk mengakses data source

Membuat Kalkulator dengan Java

Pertemuan 7. Create, Read, Update, Delete Pada SQL Lite (Tampilan)

Belajar Java 2 Tambah, Simpan & Cari Data di Netbeans dengan Database MySQL

Aplikasi CRUD dengan Visual Basic 2012 [APLIKASI CRUD DENGAN VISUAL BASIC 2012 & MYSQL] September 18, & MySQL. Bahtiar Imran

Koneksi Sederhana Database dengan C# (Lihat, Tambah, dan Hapus Data)

Inheritance (Pewarisan) Pengertian dasar inheritance

LAMPIRAN 1. Listing Program

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Java Library dan Java Swing

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

LAB02 : KODING PROGRAM

1. Buka kembali project yang telah dibuat pada latihan 2 (project akademik)

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

ABSTRACT & INTERFACE. Pemrograman Lanjut Herman Tolle

Pembuatan Report menggunakan JasperReports dan ireport

Chapter 6 Konsep OOD with Java

Gambar 1: Hirarki class

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

Pertemuan 4 Halaman 1/1. Class Inheritance

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

KONSEP OOP: PEWARISAN / INHERITANCE

Transkripsi:

Persistence Sederhana dengan NetBeans Oleh : Eko Zulkaryanto http://zulkaryanto.wordpress.com Sumber : http://jasoet.wordpress.com/2008/11/10/persistence-sederhana-dengan-netbeans-2/ Tutorial ini mengambil ide dari tutorial yang ada di blognya Mas Hendro. Yaitu tentang pengenalan Swing Framework dan Beans Binding. Persistence di Java masuk dalam Java Persistence Api atau JPA. JPA mempunyai kemampuan yang cukup Mantap yaitu kita benar-benar tidak berurusan dengan database. Lho Tablenya gimana?. Nah tablenya akan dibuatkan sendiri oleh JPA. Beberapa hal yang perlu diperhatikan : Kita hanya perlu paham pendekatan Object Oriented Table dalam database akan di generate otomatis bedasarkan entity class yang kita buat. Ada beberapa library JPA yang bisa digunakan antara lain TopLink dan Hibernate. Untuk memulainya silahkan buka NetBeans (dalam tutorial ini saya menggunakan NetBeans 6.5 RC 2). Kemudian buat sebuah project baru dan beri nama TestInventory. Tipe project yang digunakan adalah Java Aplication. Pastikan untuk meng-uncheck option Create Main Class. Buat sebuah database baru pada MySQL atau JavaDB dan pastikan NetBeans sudah terhubung dengan database tersebut. Buat sebuah sebuah Persistence Unit pada project yang baru saja dibuat. Persistence Unit dapat di temukan pada New File -> Categori Persistence. Kemudian pastikan koneksi database yang terpilih sesuai dengan database yang tadi kita buat. Untuk library silahkan pilih yang diinginkan tetapi pada tutorial ini saya menggunakan Hibernate.

Kemudian buat dua buah Entity Class yaitu Kategori dan Produk kemudian masukkan dalam Package org.jasoet.model atau sesuai dengan keiinginan. File tipe Entity Class dapat ditemukan pada New File -> Categori Persistence. Kemudian sesuaikan dengan source code dibawah ini. Kelas org.jasoet.model.kategori //Class org.jasoet.model.kategori package org.jasoet.model; import java.beans.propertychangesupport; import java.io.serializable; import java.util.list; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.onetomany; import javax.persistence.transient; @author Deny Prasetyo @Entity public class Kategori implements Serializable { @Transient private PropertyChangeSupport changesupport = new PropertyChangeSuppor t(this); private static final long serialversionuid = 1263464563453L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name", length = 100) private String name; @Column(name = "decription", length = 200) private String description; @OneToMany(mappedBy = "kategori") private List<Produk> listproduct; public List<Produk> getlistproduct() { return listproduct; public void setlistproduct(list<produk> listproduct) { this.listproduct = listproduct;

public String getdescription() { return description; public void setdescription(string description) { String oldvalue = this.description; this.description = description; changesupport.firepropertychange("description", oldvalue, this.des cription); public String getname() { return name; public void setname(string name) { String oldvalue = this.name; this.name = name; changesupport.firepropertychange("name", oldvalue, this.name); public Long getid() { return id; public void setid(long id) { Long oldvalue = this.id; this.id = id; changesupport.firepropertychange("id", oldvalue, this.id); @Override public int hashcode() { int hash = 0; hash += (id!= null? id.hashcode() : 0); return hash; @Override public boolean equals(object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Kategori)) { return false; Kategori other = (Kategori) object; if ((this.id == null && other.id!= null) (this.id!= n ull &&!this.id.equals(other.id))) { return false; return true; @Override public String tostring() { return "org.jasoet.model.kategori[id=" + id + "]";

Kelas org.jasoet.model.produk //Class org.jasoet.model.produk package org.jasoet.model; import java.beans.propertychangesupport; import java.io.serializable; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.manytoone; import javax.persistence.transient; @author Deny Prasetyo @Entity public class Produk implements Serializable { @Transient private PropertyChangeSupport changesupport = new PropertyChangeSupport(th is); private static final long serialversionuid = 134674453247658L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column(name = "name", length = 100) private String name; @Column(name = "decription", length = 200) private String description; @Column(name = "price", length = 15) private double price; @ManyToOne private Kategori kategori; public Long getid() { return id; public void setid(long id) { Long oldvalue = this.id; this.id = id; changesupport.firepropertychange("id", oldvalue, this.id); public String getdescription() { return description; public void setdescription(string description) { String oldvalue = this.description; this.description = description; changesupport.firepropertychange("name", oldvalue, this.description);

public String getname() { return name; public void setname(string name) { String oldvalue = this.name; this.name = name; changesupport.firepropertychange("name",oldvalue,this.name); public double getprice() { return price; public void setprice(double price) { double oldvalue = this.price; this.price = price; changesupport.firepropertychange("price", oldvalue, this.price); public Kategori getkategori() { return kategori; public void setkategori(kategori kategori) { Kategori oldvalue = this.kategori; this.kategori = kategori; changesupport.firepropertychange("kategori", oldvalue, this.kategori); @Override public int hashcode() { int hash = 0; hash += (id!= null? id.hashcode() : 0); return hash; @Override public boolean equals(object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Produk)) { return false; Produk other = (Produk) object; if ((this.id == null && other.id!= null) (this.id!= null &amp ;&!this.id.equals(other.id))) { return false; return true; @Override public String tostring() { return "org.jasoet.model.produk[id=" + id + "]";

Perhatikan penggunaan anotasi (@blablabla) pada kode diatas anotasi tersebut nantinya akan digunakan untuk menggenerate tabel. Untuk lebih jelas mengenai @Anotasi pada Persistence API silahkan download buku berjudul Java Persistence with Hibernate di link-link bagian tutorial pada blog ini. Setelah membuat dua buah entity class kemudian buat dua buah kelas DAO yaitu KategoriDAO dan ProdukDAO. Kelas DAO merupakan Java Class biasa. Dua kelas tersebut nantinya akan digunakan untuk fungsi CRUD (Create, Read, Update, Delete) pada database. Masukkan dua buah kelas tersebut kedalam package org.jasoet.dao Sesuaikan dengan Code dibawah ini. Kelas org.jasoet.dao.kategoridao //Class org.jasoet.dao.ketegoridao package org.jasoet.dao; import java.util.list; import javax.persistence.entitymanager; import org.jasoet.model.kategori; @author Deny Prasetyo public class KategoriDAO { private EntityManager em; public KategoriDAO(EntityManager em) { this.em = em; public void save(kategori prod) { if (prod.getid() == null) { em.persist(prod); else { em.merge(prod); public void delete(kategori prod) { em.remove(prod); public Kategori getkategori(long id) { return em.find(kategori.class, id); public List getprodudct() { return em.createquery("select p from Kategori p").getresultlist(); Kemudian untuk Kelas org.jasoet.dao.productdao //Class org.jasoet.dao.productdao package org.jasoet.dao; import java.util.list; import javax.persistence.entitymanager;

import org.jasoet.model.produk; @author Deny Prasetyo public class ProdukDAO { private EntityManager em; public ProdukDAO(EntityManager em) { this.em = em; public void save(produk prod) { if (prod.getid() == null) { em.persist(prod); else { em.merge(prod); public void delete(produk prod) { em.remove(prod); public Produk getproduk(long id) { return em.find(produk.class, id); public List getprodudct() { return em.createquery("select p from Produk p").getresultlist(); Setelah selesai sekarang kita tinggal membuat main class untuk mengetest apakah program kita telah berjalan dengan baik. Kelas org.jasoet.testmain //Class org.jasoet.testmain package org.jasoet; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; import org.jasoet.dao.kategoridao; import org.jasoet.dao.produkdao; import org.jasoet.model.kategori; import org.jasoet.model.produk; @author Deny Prasetyo public class TestMain { private EntityManagerFactory emf = Persistence.createEntityManagerFact ory("testinventorypu");

public void dotest() { EntityManager em = emf.createentitymanager(); KategoriDAO kdao = new KategoriDAO(em); Kategori kat = new Kategori(); kat.setname("sepatu"); kat.setdescription("segala Jenis Sepatu dan Sepatu sandal"); ProdukDAO pdao = new ProdukDAO(em); Produk p = new Produk(); p.setkategori(kat); p.setname("kazoot"); p.setprice(40000); p.setdescription("sepatu bermerek"); em.gettransaction().begin(); kdao.save(kat); pdao.save(p); em.gettransaction().commit(); public void dotestdua(){ EntityManager em = emf.createentitymanager(); ProdukDAO pdao = new ProdukDAO(em); Produk p = pdao.getproduk(1l); System.out.println(p.getName()); System.out.println(p.getKategori().getName()); System.out.println(p.getPrice()); @param args the command line arguments public static void main(string[] args) { TestMain tm = new TestMain(); tm.dotest(); tm.dotestdua(); Kita akan membahas kode program pada MainClass diatas. 1. Pada baris awal terdapat deklarasi EntityManagerFactory ini digunakan untuk menjalankan Persistence Library yang sudah di definisikan pada Persistence Unit (persistence.xml) sesuai dengan nama parameter yang dimasukkan dalam hal ini TestInventoryPU; 2. Pada methode dotest() terdapat deklarasi EntityManager yang diambil dari Object EntityManagerFactory. Ketika EntityManager di deklarasikan maka table pada database akan digenerate. 3. Kemudian pada dotest() dilakukan insert satu buah object Kategori dan satu buah object Produk. Perhatikan bagian em.gettransaction().begin() dan em.gettransaction().commit() Ini merupakan pembuka dan penutup Transaction pada database. Sedangkan untuk bagian kdao.save() dan pdao.save() merupakan pemanggilan fungsi untuk menyimpan data. 4. Pada methode dotestdua() isi dari table pada database diambil kemudian ditampilkan. Jalankan program kemudian amati output dan juga table pada database. Segitu dulu posting untuk kali ini. Kalau ada pertanyaan hubungi jasoet87@gmail.com

Inheritance Pada Java Persistence Api (JPA) Oleh : Eko Zulkaryanto Sumber : http://jasoet.wordpress.com/2008/11/12/inheritance-pada-java-persistence-api-jpa/ Pada postingan sebelumnya kita telah sedikit mencoba Java Persistence Api menggunakan NetBeans. Disinggung sedikit bahwa dengan JPA kita bisa buat aplikasi menggunakan database tapi tidak perlu berurusan dengan struktur table ataupun SQL. Table dalam database akan di generate oleh JPA berdasarkan Entity class yang kita definisikan. Sekarang kalau ada yang bertanya. Kalau Table dalam database digenerate berdasarkan Entity class yang berkonsep OOP. Nah gimana ceritanya kalau Entity Class tersebut menggunakan konsep Inheritance?. Lebih baik kita lihat contoh program dibawah ini moga-moga bisa menjawab pertanyaan tersebut oh iya posting ini berdasarkan postingan salah satu blog yang muncul di web wordpress ini. Buat sebuah project baru dengan nama InheritanceJPA. Tipe project yang digunakan adalah Java Aplication. Pastikan untuk meng-uncheck option Create Main Class. Buat sebuah database baru pada MySQL atau JavaDB dan pastikan NetBeans sudah terhubung dengan database tersebut. Setelah membuat database dan database tersebut telah terkoneksi dengan NetBeans selanjutnya buat sebuah Persistence Unit dan koneksikan Persistence Unit tersebut dengan database yang telah dibuat.bisa lihat postingan sebelumnya untuk langkah-langkah diatas. Sekarang baru kita coba untuk membuat Entity Class. Entity Class yang akan kita buat ada empat yaitu ModelBase, Article, BookArticle dan MagazineArticle dan kalau kita lihat Class diagramnya akan terlihat seperti ini.

Bisa dilihat Class Article turunan dari Class ModelBase sedangkan Class MagazieArticle dan BookArticle turunan dari Class Article. Sekarang coba kita lihat code dari ke empat Class tersebut. Class ModelBase package org.jasoet.model; import java.io.serializable; import javax.persistence.generatedvalue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.mappedsuperclass; @author Deny Prasetyo @MappedSuperclass public abstract class ModelBase implements Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; public Long getid() { return id; public void setid(long id) { this.id = id; Class Article package org.jasoet.model;

import javax.persistence.discriminatorcolumn; import javax.persistence.discriminatortype; import javax.persistence.entity; import javax.persistence.inheritance; import javax.persistence.inheritancetype; @author Deny Prasetyo @Entity @Inheritance(strategy=InheritanceType.JOINED) @DiscriminatorColumn(discriminatorType=DiscriminatorType.INTEGER, name="ar ticletypeid") public abstract class Article extends ModelBase { private String articleid; private String title; private String summary; private String url; public String getarticleid() { return articleid; public void setarticleid(string articleid) { this.articleid = articleid; public String gettitle() { return title; public void settitle(string title) { this.title = title; public String getsummary() { return summary; public void setsummary(string summary) { this.summary = summary; public String geturl() { return url; public void seturl(string url) { this.url = url; Class MagazineArticle package org.jasoet.model; import java.util.date;

import javax.persistence.discriminatorvalue; import javax.persistence.entity; import javax.persistence.temporal; import javax.persistence.temporaltype; @author Deny Prasetyo @Entity @DiscriminatorValue("1") public class MagazineArticle extends Article { private static final long serialversionuid = 4276734517833727032L; private String publicationname; @Temporal(TemporalType.DATE) private Date publicationdate; public String getpublicationname() { return publicationname; public void setpublicationname(string publicationname) { this.publicationname = publicationname; public Date getpublicationdate() { return publicationdate; public void setpublicationdate(date publicationdate) { this.publicationdate = publicationdate; public String getauthorname() { return authorname; public void setauthorname(string authorname) { this.authorname = authorname; Class BookArticle package org.jasoet.model; import javax.persistence.discriminatorvalue; import javax.persistence.entity; @author Deny Prasetyo @Entity @DiscriminatorValue("2") public class BookArticle extends Article {

private static final long serialversionuid = -6145145462382485655L; private String authorname; private String publishername; private String isbnnumber; public String getauthorname() { return authorname; public void setauthorname(string authorname) { this.authorname = authorname; public String getpublishername() { return publishername; public void setpublishername(string publishername) { this.publishername = publishername; public String getisbnnumber() { public void setisbnnumber(string isbnnumber) { this.isbnnumber = isbnnumber; 1. Oh ya jangan lupa masukkan ke empat Class tadi kedalam packet org.jasoet.model atau nama yang dianda sukai. Biasakan menamai package dengan nama yang mencerminkan sifat Class-Class yang ada didalamnya. 2. Kemudian daftarkan Class-Class tersebut ke dalam Persistence Unit. Buka file persistence.xml kemudian pilih bagian Design dan pilih tombol Add Class kemudian tambahkan semua Class yang sudah dibuat sebelumnya. Setelah itu buat sebuah Main Class untuk mencoba apakah program kita sudah benar. Class MainClass package org.jasoet; import java.util.calendar; import java.util.list; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence;

import javax.persistence.query; import org.jasoet.model.article; import org.jasoet.model.bookarticle; import org.jasoet.model.magazinearticle; @author Deny Prasetyo public class MainClass { private EntityManager entitymanager; private EntityManagerFactory entitymanagerfactory; public MainClass() { entitymanagerfactory = Persistence.createEntityManagerFactory("Inheritance JPAPU"); entitymanager = entitymanagerfactory.createentitymanager(); public void dotest() { // build and persist a magazine article MagazineArticle ma = new MagazineArticle(); ma.setarticleid("mag-000-001"); ma.settitle("magazine Article Title 1"); ma.setsummary("this is a short summary of magazine article 0001..."); ma.seturl("/path/to/mag-art-0001"); Calendar pubdatecalendar = Calendar.getInstance(); pubdatecalendar.set(2002, 11, 15); ma.setpublicationdate(pubdatecalendar.gettime()); ma.setpublicationname("harper Collins"); ma.setauthorname("dr Doolittle"); entitymanager.gettransaction().begin(); entitymanager.persist(ma); entitymanager.gettransaction().commit(); // build and persist a book article BookArticle ba = new BookArticle(); ba.setarticleid("bk-000-001"); ba.settitle("book Article Title 1"); ba.setsummary("this is a short summary of book article 0001..."); ba.seturl("/path/to/book-art-0001"); ba.setauthorname("dr Busybody"); ba.setpublishername("tom Collins"); ba.setisbnnumber("1234-5678"); entitymanager.gettransaction().begin(); entitymanager.persist(ba); entitymanager.gettransaction().commit(); // select all articles Query q = entitymanager.createquery("select a from Article a"); List results = q.getresultlist(); for (Article result : results) { System.out.println(result.toString());

public static void main(string[] args) { MainClass mc = new MainClass(); mc.dotest(); Jika sudah kemudian jalankan program. Sekarang perhatikan struktur table yang telah dibuat pada database. Ternyata struktur database untuk Entity Class dengan Inheritance menggunakan relasional OnetoOne. Seperti pada gambar dibawah : Kesimpulan ternyata konsep Inheritance di OOP dapat diterapkan juga di Relational Database dan juga apabila kita menggunakan JPA kita diberi kemudahan karena tidak perlu mendesain table secara manual dan kita hanya perlu paham terhadap konsep OOP.