17 Ekim 2018 Çarşamba

@TypeDef Anotasyonu

Giriş
Şu satırı dahil ederiz.
import com.fasterxml.jackson.databind.JsonNode;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
Bir name ve sınıf tanımlanır. Sınıfın UserType arayüzünden kalıtması gerekir.

Bu name daha sonra @Type anotasyonu ile birlikte kullanılır. Böylece veri tabanına alanı kaydederken kullanılacak sınıf belirtilir.

Bu anotasyon yerine JPA 2.1 ile gelen anotasyonlar kullanılmalı. Ayrıca Hibernate 6 ile @TypeDef kaldırıldı ve yerine @Type anotasyonu geldi

Örnek
Şöyle yaparız.
@Entity
@Table(name = "FBMS_FORM")
@TypeDef(
        name = "json",
        typeClass = JsonStringType.class
)
public class FormEntity {
  ...

  @Column(name = "SCHEMA", nullable = false)
  @Type(type = "json")
  private JsonNode schema;

}
Örnek
Şöyle yaparız.
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;

@Entity
@TypeDef(name = "inverseDate", typeClass = InverseDateType.class)
@Table(name = "GAMECYCLE")
public class GameCycle implements Comparable<GameCycle>, Serializable
{
    @Type(type = "inverseDate")
    @Column(name = "GC_DATE", nullable = false)
    protected Date iDate = null;
    ...
}

Hiç yorum yok:

Yorum Gönder