2017-03-27 24 views
0

AttributeConverter<Date,String>を作成することはできますか?私はHibernateでSpringプロジェクトでそれを使いたいと思っています。 String dataColumnをDateエンティティ属性に変換します。 私を助けてください。AttributeConverter日付文字列

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

    @Override 
    public String convertToDatabaseColumn(Date entityDate) { 
     // format entityDate and return String 
    } 

    @Override 
    public Date convertToEntityAttribute(String databaseDate) { 
     // parse databaseDate and return Date object 
    } 
} 

はあなたのエンティティで目的のフィールドにコンバータを適用します: よくコンバータを定義休止状態

@Converter(autoApply=true) 
public class DatetoStringConverter implements AttributeConverter 
{ 
    @Override 
    public String convertToDatabaseColumn(Date arg0) { 
     SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy",Locale.FRENCH); 
     return formatter.format(arg0); 
    } 

    @Override 
    public Date convertToEntityAttribute(String arg0) { 
     try { 
      SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy",Locale.FRENCH); 
      return formatter.parse(arg0); 
     } catch (ParseException e) { 
      return null; 
     } 
    } 
} 

とフィールド

@Column(name="Date") 
@DateTimeFormat(pattern="dd/MM/yyyy") 
@Convert(converter=DatetoStringConverter.class) 
private Date datefonction; 
+0

あなたは...「私のためにいくつかのコードを書いてください」 –

+0

データトランスを使用することができます。..タイプミス –

答えて

0

によってスキャンされるよりも、パッケージ内に配置されています

@Convert(converter = MyDateAttributeConverter.class) 
private Date date; 

@AttribureConverterがhibernate(セッションファクトリプロパティ)によってスキャンされるよりもパッケージに置かれていることを確認してください。

+0

は、これはよくスキャンされ、休止状態 – usef

+0

によってスキャンされるよりも、パッケージ内に配置されているあなたは意味 –

+0

は、あなたが私を助けることができる私は、エラーメッセージを持っていますスレッド "main"の例外javax.persistence.PersistenceException:AttributeConverteを適用しようとしてエラーが発生しました – usef