-
Notifications
You must be signed in to change notification settings - Fork 1
Implementasi model
Putu Wiramaswara Widya edited this page Dec 10, 2013
·
4 revisions
Implementasi Model Basis Data ke paket id.ac.its.SimplePOS2013.DataModel.Model menggunakan kelas berbasis POJO (Plain old Java Object) dengan tambahakan anotasi dari JavaX Persistence (http://docs.oracle.com/javaee/6/api/javax/persistence/package-summary.html).
-
Setiap model dibuat dalam satu kelas. Misal model Barang diletakkan dalam kelas
id.ac.its.SimplePOS2013.DataModel.Model.Barangdalam berkas bernama Barang.java - Setiap kolom dideklarasikan dalam variabel private dengan setter dan getternya.
- Beberapa anotasi yang mungkin perlu digunakan antara lain :
- Diletakkan pada deklarasi kelas :
-
@Entityuntuk menegaskan bahwa kelas tersebut adalah entitas. -
@Table(name="Foobar")untuk menentukan nama tabel dari kelas entitias yang dibuat. Sebaiknya dibuat sama dengan nama kelas yang digunakan, mungkin dengan perbedaan case.
-
- Diletakkan pada deklarasi variabel :
-
@Iduntuk menegaskan kolom tersebut sebagai primary key. -
@Column(Name="Foobar")untuk menegaskan nama detail dari kolom. -
@GeneratedValueekivalen dengan penggunaan auto_increment. - Relasi
@OneToOne,@OneToMany,@ManyToOnediisi pada kolom yang berhubungan dengan entitas lain. Relasi sebaiknya di didefinisikan secara dua arah (Misal relasi@OneToManydari entitas Barang ke StokToko disebut@ManyToOnedari entitas StokToko ke Barang memiliki Stok Toko. Kita sebut Barang memiliki Stok). Berikut adalah beberapa penjelasan tambahan untuk definisi relasi :- Atribut pada anotasi relasi (Contoh
@OneToOne(mappedBy="foobar")) yang terdiri dari :-
optional=truejika asosiasi relasi tersebut memang opsional (tidak harus saling terkait). -
mappedBy="fooBar"ditulis pada entitas yang memiliki, nama "fooBar" diisi dengan nama kolom pada kelas entitas dari sisi yang dimiliki.
-
-
@JoinColumn(name="fooBar")ditulis pada entitas yang dimiliki. Nama diisi dengan nama kolom pada basis data.
- Atribut pada anotasi relasi (Contoh
-
- Diletakkan pada deklarasi kelas :
CREATE TABLE `department` (
`department_id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`dept_name` VARCHAR(50) NOT NULL DEFAULT '0',
PRIMARY KEY (`department_id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
AUTO_INCREMENT=115
CREATE TABLE `employee` (
`employee_id` BIGINT(10) NOT NULL AUTO_INCREMENT,
`firstname` VARCHAR(50) NULL DEFAULT NULL,
`lastname` VARCHAR(50) NULL DEFAULT NULL,
`birth_date` DATE NULL DEFAULT NULL,
`cell_phone` VARCHAR(15) NULL DEFAULT NULL,
`department_id` BIGINT(20) NULL DEFAULT NULL,
PRIMARY KEY (`employee_id`),
INDEX `FK_DEPT` (`department_id`),
CONSTRAINT `FK_DEPT` FOREIGN KEY (`department_id`) REFERENCES `department` (`department_id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
ROW_FORMAT=DEFAULT
package net.viralpatel.hibernate;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="DEPARTMENT")
public class Department {
@Id
@GeneratedValue
@Column(name="DEPARTMENT_ID")
private Long departmentId;
@Column(name="DEPT_NAME")
private String departmentName;
@OneToMany(mappedBy="department")
private Set<Employee> employees;
// Getter and Setter methods
}
package net.viralpatel.hibernate;
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@GeneratedValue
@Column(name="employee_id")
private Long employeeId;
@Column(name="firstname")
private String firstname;
@Column(name="lastname")
private String lastname;
@Column(name="birth_date")
private Date birthDate;
@Column(name="cell_phone")
private String cellphone;
@ManyToOne
@JoinColumn(name="department_id")
private Department department;
public Employee() {
}
public Employee(String firstname, String lastname, String phone) {
this.firstname = firstname;
this.lastname = lastname;
this.birthDate = new Date(System.currentTimeMillis());
this.cellphone = phone;
}
// Getter and Setter methods
}
Diambil dari: http://viralpatel.net/blogs/hibernate-one-to-many-annotation-tutorial/