【问题标题】:Problems with Jasypt, package-info.javaJasypt 的问题,package-info.java
【发布时间】:2012-11-08 00:52:19
【问题描述】:

我正在将 JPA 与 Guice、Jasypt 和 GWT+Jetty 服务器一起使用,

我正在尝试为加密列创建自定义类型。

我已经创建了包含自定义类型的 package-info.java。 package-info.java 位于具有持久性类的包中。

在持久性类中,我为特定加密的列添加了注释。

当我在开发模式下启动码头时,我收到以下错误:

javax.persistence.PersistenceException:[PersistenceUnit:persistenceUnit] 无法在 org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914) 在 org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:第889章)在org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)

......

原因:org.hibernate.MappingException:无法确定类型:encryptedDateAsString,在表:员工,列:[org.hibernate.mapping.Column(encrypted_birth_date)]

我做错了什么?

谢谢

【问题讨论】:

    标签: java jpa jetty guice jasypt


    【解决方案1】:

    您的实体中是否缺少您正在使用的 encryptedDateAsString 类型的 @TypeDef 声明?

    例如:

    @Entity
    @TypeDef {
      name = "encryptedDateAsString",
      typeClass = org.jasypt.hibernate4.type.EncryptedDateAsStringType.class
    }
    

    编辑免责声明:我是 jasypt 的作者。

    【讨论】:

    • 你好丹尼尔。感谢您的回答。我制作了一个简单的测试项目(控制台应用程序),TypeDef 位于 package-info.java 中,它正在工作,但在 Guice+JPA 项目中不起作用。我为 Guice+JPA 制定的解决方案是拥有一个带有 TypeDef 声明的抽象类,并且持久性类将扩展该类。这是一个合适的解决方案吗?谢谢
    猜你喜欢
    • 2011-04-08
    • 2021-05-10
    • 1970-01-01
    • 2011-10-09
    • 2010-11-11
    • 2023-03-25
    • 2014-04-01
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多