21 Temmuz 2023 Cuma

JPA @Enumerated Anotasyonu

Giriş
Şu satırı dahil ederiz.
import javax.persistence.Enumerated;
Açıklaması şöyle.
ORDINAL: Persist enumerated type property or field as an integer.
STRING: Persist enumerated type property or field as a string.
@Enumerated anotasyonu EnumType.X şeklinde kullanılır. EnumType.STRINGise enum'un string değeri veri tabanına yazılır. EnumType.ORDINAL ise sayısal bir değer yazılır.

Not : JPA @Converter Anotasyonu ile custom conversion da yapılabilir

1. EnumType.ORDINAL
Örnek
Şöyle yaparız.
@Enumerated(EnumType.ORDINAL)
private Role userRole;
2. EnumType.STRING

Örnek
Açıklaması şöyle.
Remember JPA uses the name() of the enum and not the toString() even if you have overridden the toString().
Elimizde şöyle bir enum olsun. Veritabanına "PRIMARY_ACCOUNT" string olarak yazılır. "Primary customer" değil.
public enum AccountRole {
  EMPLOYEE_CUSTOMER("Employee customer"),
  JOINTER_ACSCOUNT("Jointer customer"),
  PRIMARY_ACCOUNT("Primary customer"),
  TENANT_ACCOUNT("Tenant customer");

  private final String text;

  AccountRole(final String text) {
    this.text = text;
  }

  @Override
  public String toString() {
    return text;
  }
}
Örnek
Şöyle yaparız:
@Enumerated(EnumType.STRING)
@Column(name = "LOGIC")
public BusinessLogic getLogic(){...usual getter...}



Hiç yorum yok:

Yorum Gönder

Bean Validation @GroupSequence Anotasyonu

Örnek Elimizde şöyle bir kod olsun public class SampleRequest {   @NotNull   LocalDate startDate;   @NotNull   LocalDate endDate;   @AssertT...