2017-08-13 17 views
-3

これらの投稿(https://www.thoughts-on-java.org/persist-localdate-localdatetime-jpa/https://github.com/lbtc-xxx/jpa21converter)に近づくと、JPA 2.1 sql.TimestampからLocalDateTimeへのコンバータ、またはその逆の変換が実装されています。JPA AttributeConverter for LocalDateTime

しかし、私の回顧客がうまくいかないようです。 sysoutは何も出力しないので、決して呼び出されないようです。

これは私のコンバータです:

TypedQuery<Question> query = em.createQuery("SELECT q FROM Question q", Question.class); 
query.getResultList().forEach(question -> { 
    LOGGER.info("{}|{}|{}", question.getId(), question.getDescription(), question.getCreatedAt()); 
}); 

return query.getResultList(); 

これはアウト出力します:

import java.sql.Timestamp; 
import java.time.LocalDateTime; 

import javax.persistence.AttributeConverter; 
import javax.persistence.Converter; 

@Converter(autoApply = true) 
public class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp>{ 

    @Override 
    public Timestamp convertToDatabaseColumn(LocalDateTime localDateTime) { 
     System.out.println("CONVERTER TIMESTAMPS: " + localDateTime); 
     return (localDateTime == null ? null : Timestamp.valueOf(localDateTime)); 
    } 

    @Override 
    public LocalDateTime convertToEntityAttribute(Timestamp timestamp) { 
     System.out.println("CONVERTER TIMESTAMPS: " + timestamp); 
     return (timestamp == null ? null : timestamp.toLocalDateTime()); 
    } 

} 

これは、これは5月のDAOクラスでの私の方法です

@Entity 
@Table(name = "survey") 
public class Question { 
    @Id 
    @GeneratedValue(strategy = Generationtype.AUTO) 
    private Integer id; 
    ... 
    @JsonSerialize(using = LocalDateTimeSerializer.class) 
    @JsonDeserialize(using = LocalDateTimeDeserializer.class) 
    /*I also tried here: @Convert(converter = LocalDateTimeConverter.class))*/ 
    private LocalDateTime createdAt; 
    ... 
} 

エンティティクラスであります

1|hello|null 
2|hi|null 
3|howdy|null 

ありがとうございます。

答えて

-1

私は今すぐ動作しました。私はクラスが私が最初にそれを置く理由ですSerializableを実装以来SonarLintがそれを要求している

private transient LocalDateTime createdAt; 

から過渡

を削除しました。

+0

あなたの質問に「transient」という単語も含まれていません... –

+0

うん。私はそれを逃した。 –

+0

実際のコードを投稿しないと、誰かがあなたを手伝ってくれると期待していますか? –

関連する問題