Spring JPA Hibernate 和 AttributeConverter

Posted

技术标签:

【中文标题】Spring JPA Hibernate 和 AttributeConverter【英文标题】:Spring JPA Hibernate and AttributeConverter 【发布时间】:2015-02-12 08:18:27 【问题描述】:

我有一个小型应用程序(spring 4.0、jpa 2.1、hibernate 5.0.2)并且一直在使用“旧”java.util.Date* 类以及 java.sql.Date*。现在我想改用 java.time 并读到它可以与 AttributeConverter 一起使用。 不幸的是,这似乎不起作用。当我尝试使用时间戳读取数据库对象时(doa 相当于 java.time.localdatetime),我得到了一个异常。 即使注释在那里,似乎根本没有使用转换器。我只有一个 applicationContext.xml 而没有 persistence.xml 那么我在哪里告诉 jpa 使用转换器(如果注释不够)? 我怎样才能看到 AttributeConverter 完全被 jpa 拾取了?

提前致谢, 约翰。

【问题讨论】:

能否请您复制并粘贴异常?分析问题可能会有所帮助。 【参考方案1】:

@Converter 在 JPA2.1 中可用。

尝试改变你的依赖配置:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.5.Final</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.7.2.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.5.Final</version>
    </dependency>

【讨论】:

以上是关于Spring JPA Hibernate 和 AttributeConverter的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data JPA 和 Hibernate

Spring Hibernate JPA 联表查询

Spring Hibernate JPA 联表查询 复杂查询

Spring、Spring Security、JPA、MySQL、Hibernate 配置

Spring+Hibernate+JPA的多数据库

使用 JPA 和 Spring 加载选定的 Hibernate 实体