4

新しい JPA 2.1 型コンバーターをテストしています。NULL 文字列値が許可されていないため、従来のデータベースに格納されることを避けたいと考えています。そこで、次のコンバーターを定義しました。

@Converter(autoApply=true)  
public class CString implements AttributeConverter<String, String> {  

    @Override  
    public String convertToDatabaseColumn(String str) {  
        if( str == null || str.length() == 0 ) {  
            return " ";
        } else {
            return str;
        }
    }

    @Override
    public String convertToEntityAttribute(String str) {
        if( str == null || str.length() == 0 || str.equals(" ") ) {
            return null;
        } else {
            return str;
        }
    }

}  

文字列プロパティは、NULL の場合は空白文字に変換する必要がありますが、プロパティが NULL の場合、コンバーター メソッドは実行されません。
hibernate-jpa-2.1-api (1.0.0.Final) と hibernate-entitymanager (4.3.6.Final) を試しています。
これを回避するJPA 2.1準拠の方法はありますか?

4

1 に答える 1