8 votes

Spring Data JDBC supporte-t-il les convertisseurs de type personnalisés ?

J'ai une entité qui a un fichier de type java.util.Date (ou Timestamp n'a pas d'importance dans le cas présent).

public class StatusReason {
    @Column("SRN_ID")
    private Long id;
    @Column("SRN_CREATOR")
    private String creator;
    @Column("SRN_REASON")
    private String reason;
    @Column("SRN_STATUS")
    private String status;
    @Column("SRN_TIMESTAMP")
    private Date timestamp;
//getters, setters, etc...
}

La base de données est Oracle et la colonne correspondante est de type TIMESTAMP(6) WITH TIME ZONE

Lorsque j'appelle l'une des fonctions par défaut findById o findAll du référentiel que je reçois : ConverterNotFoundException: No converter found capable of converting from type [oracle.sql.TIMESTAMPTZ] to type [java.util.Date] .

Je peux créer un RowMapper pour le type et cela fonctionnera bien. Je me demandais simplement s'il est possible d'enregistrer un convertisseur personnalisé (dans mon cas de oracle.sql.TIMESTAMPTZ a java.util.Date ), vous pouvez donc toujours bénéficier de la cartographie par défaut et utiliser le convertisseur dans toute l'application.

6voto

Jens Schauder Points 23468

Vous pouvez enregistrer des conversions personnalisées en héritant de votre configuration à partir de JdbcConfiguration et en écrasant la méthode jdbcCustomConversions() .

JdbcCustomConversions prend une liste de Converter comme argument.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X