@SecondaryTable (Hibernate Annotations)

Bir sınıf içerisinde ayrı tablolara haritalanmasını istediğimiz özellikler olabilir. Bunun için @SecondaryTable anotasyonu kullanılır.

@Entity ile birlikte sınıf üzerinde tanımlanır. Sınıf içerisindeki istediğimiz değişkenleri başka bir ikincil tabloda tutmamızı sağlar. İkincil tabloda tutmak istediğimiz değişkenlerin üzerine @Column(table=”İkinciTabloAdi”) şeklinde ekleme yapmamız yeterli.

Örneğin 3 soru tipini temsil eden bir Soru sınıfı olsun. Tipler : Klasik,ÇoktanSeçmeli,Doğru-Yanlış. Çoktan seçmeli soruların şıkları haricinde diğer tüm özellikler 3 soru tipi içinde ortak. Bu nedenle şıkları ayrı bir tabloda tutmak daha mantıklı olacaktır.

 

[code lang=”java”]
package com.gunerakin.model;

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.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SecondaryTable;
import javax.persistence.Table;

import org.jboss.logging.Logger;

@Entity
@Table(name = "Soru")
@SecondaryTable(name="siklar")
public class Soru implements Serializable {

private static final Logger logger = Logger.getLogger(Soru.class);

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long soru_id;

private String soru_kok;

@Column(table="siklar")
private String soru_A;

@Column(table="siklar")
private String soru_B;

@Column(table="siklar")
private String soru_C;

@Column(table="siklar")
private String soru_D;

@Column(table="siklar")
private String soru_E;

@ManyToOne
private Tip tip;

private String soru_dogru;
private int soru_puan;
private String zorluk;

@ManyToOne
@JoinColumn(name = "kategori_id")
private Kategori kategori;

……………….
[/code]

Kodun tamamına şuradan ulaşabilirsiniz : github/GNRAKN

Yazar: gnrakn

"To make this journey, We’ll need imagination. But imagination alone is not enough. Because the reality of nature far more wondrous than anything we can imagine.”

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir