Spring Boot(JPA)でオブジェクトの任意の値をDB登録する方法について
Posted on February 06, 2015 at 23:01 (JST)
前回に引き続き、Spring Bootで永続化にdata-jpaを使用している場合の値登録方法について記載します。
今回はJavaEE標準仕様のJPA2.1のTypeConverterを使用し、Enumのコード値を登録しました。
作成したサンプルはGithubにて公開しています。[ simple-mvc-app ]
ソース
まずはEntityクラスから。
[ Purchase.java(抜粋)]
@Entity
public class Purchase {
@Id
@GeneratedValue
private Long id;
@Convert(converter = GiftWrappingConverter.class)
private GiftWrapping giftWrapping;
@Enumerated(EnumType.STRING)
private PaymentMethod paymentMethod;
<省略>
}
@Convertに作成した変換用クラスを指定し、変換対象のフィールドに付与するだけです
つづいてGiftWrappingConverter。
[ GiftWrappingConverter.java ]
@Converter
public class GiftWrappingConverter implements AttributeConverter<GiftWrapping, String> {
public String convertToDatabaseColumn(GiftWrapping attribute) {
return attribute == null
? null : attribute.getCode();
}
public GiftWrapping convertToEntityAttribute(String value) {
return value == null
? null : GiftWrapping.of(value);
}
}
@Converteを付与し、javax.persistence.AttributeConverterを実装、たったこれだけです。
シンプルって素晴らしいですね!
以上です。