首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@ DataNucleus中的转换

@ DataNucleus中的转换
EN

Stack Overflow用户
提问于 2013-01-29 20:02:59
回答 2查看 226关注 0票数 2

有没有人设法在DataNucleus中使用@Convert注释?您是否有可用的示例或文档链接?

我试着这样实现它。

代码语言:javascript
复制
...
@Convert(converter = MyAttributeConverter.class)
private String[] aField;
...

MyAttributeConverter实现了javax.persistence.jpa21.AttributeConverter<String[], String>

当我运行DataNucleus增强器时,我得到这个错误

代码语言:javascript
复制
WARN [main] (Log4JLogger.java:96) - Class "XXX" has an annotation "javax.persistence.jpa21.Convert" specified with property "converter" yet this is invalid. Please check the specification for that annotation class. Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
ERROR [main] (Log4JLogger.java:125) - DataNucleus Enhancer completed with an error. Please review the enhancer log for full details. Some classes may have been enhanced but some caused errors Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details org.datanucleus.exceptions.NucleusUserException: Errors were encountered when loading the specified MetaData files and classes. See the nested exceptions for details
    at org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:536)
    ...

根据DataNucleus文档看起来很好:http://www.datanucleus.org/products/accessplatform/jpa/annotations.html#Convert,尽管我在谷歌上发现了一个问题报告,其中的内容有点不同:http://www.datanucleus.org/servlet/jira/browse/NUCJPA-164

我使用的是DataNucleus 3.1.3。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-14 15:01:49

同时,我升级到datanucleus-accessplatform-jpa-rdbms 3.3.2 (datanucleus-core 3.2.7,datanucleus-api-jpa 3.3.2)并使其正常工作。

但这条信息可能有多种原因:

转换器可以是从另一个类继承的classpath.

  • Your中缺少的转换器类-参见my other
  • (尚未回答)
  • 转换器实体类型和使用@Convert注释的字段类型之间可能存在不兼容。
  • 不同版本之间可能存在不兼容。例如,您的转换器可以实现javax.persistence.jpa21.AttributeConverter (较旧版本),但增强器使用的是javax.persistence.AttributeConverter (较新版本)或相反的情况。

我认为错误消息应该更具体一点,以帮助您更好地识别问题。

票数 0
EN

Stack Overflow用户

发布于 2013-01-29 21:50:27

样本正在http://datanucleus.svn.sourceforge.net/viewvc/datanucleus/test/accessplatform/trunk/test.jpa.general/src/test/org/datanucleus/tests/TypeConversionTest.java?revision=16466&view=markup上进行http://datanucleus.svn.sourceforge.net/viewvc/datanucleus/test/accessplatform/trunk/test.jpa.general/src/java/org/jpox/samples/typeconversion/和测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14582431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档