Giriş
Kendi yazdığımı sınıfı JPA'ya tanıtmak @Converter anotasyonu kullanılır.
convertToDatabaseColumn metodu
Örnek - enum
AccountRole isimli bir enumeration bu enum'a ait getText(), fromText() metodları olsun. Şöyle yaparız.
LocalDate için şöyle yaparız.
LocalDateTime için şöyle yaparız.
Kendi yazdığımı sınıfı JPA'ya tanıtmak @Converter anotasyonu kullanılır.
convertToDatabaseColumn metodu
Örnek - enum
AccountRole isimli bir enumeration bu enum'a ait getText(), fromText() metodları olsun. Şöyle yaparız.
@Converter(autoApply = true)
public class AccountRoleConverter implements AttributeConverter<AccountRole, String> {
@Override
public String convertToDatabaseColumn(AccountRole role) {
return role.getText();
}
@Override
public AccountRole convertToEntityAttribute(String dbData) {
return AccountRole.fromText(dbData);
}
}
Örnek - javax.time.LocalDate ve java.util.Data arasında çevrim yaparLocalDate için şöyle yaparız.
import java.time.LocalDate;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter
public class LocalDatePersistenceConverter implements AttributeConverter<LocalDate,
java.sql.Date> {
@Override
public java.sql.Date convertToDatabaseColumn(LocalDate entityValue) {
if (entityValue != null) {
return java.sql.Date.valueOf(entityValue);
}
return null;
}
@Override
public LocalDate convertToEntityAttribute(java.sql.Date databaseValue) {
if (databaseValue != null) {
return databaseValue.toLocalDate();
}
return null;
}
}
Örnek - LocalDateTimeLocalDateTime için şöyle yaparız.
import java.time.LocalDateTime;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter
public class LocalDateTimePersistenceConverter implements
AttributeConverter<LocalDateTime, java.sql.Timestamp> {
@Override
public java.sql.Timestamp convertToDatabaseColumn(LocalDateTime entityValue) {
if (entityValue != null) {
return java.sql.Timestamp.valueOf(entityValue);
}
return null;
}
@Override
public LocalDateTime convertToEntityAttribute(java.sql.Timestamp databaseValue) {
if (databaseValue != null) {
return databaseValue.toLocalDateTime();
}
return null;
}
}
Hiç yorum yok:
Yorum Gönder