我在Netbeans 7中有一个Java 6项目,在IDE中编译和启动它时运行良好。然而,当我清理和构建这个项目时,我得到了一个
java.lang.RuntimeException:javax.annotation.processing.FilerException:尝试重新创建{myclass}类型的文件
(其中myclass始终是JPA实体类)。
如果我更改代码中的某些内容,那么它是更改的是哪个实体类。
我不知道是什么导致了这个错误--有人能提供一个看什么的想法吗?
我使用的唯一额外的库是速度。
更新:我在同一个数据库上使用两个持久性单元,一个是“正常”单元,另一个是非事务性单元。用于将事情记录到数据库中的非事务性事件;在每次插入日志事件后使用提交。
当我更改它并且只使用一个“普通”PU时,这个项目就会编译得很好。这可能是因为这两个粒子干扰了eclipselink所做的一些优化吗?
下面是堆栈跟踪的开头:
An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.RuntimeException: javax.annotation.processing.FilerException: Attempt to recreate a file for type de.guj.contenthub.ftdts.entity.AgofEntry_
at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:625)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:554)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:699)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:981)
at com.sun.tools.发布于 2012-01-22 14:30:41
问题似乎是,我在两个不同的持久性单元中使用了一个和同一个实体类。我不确定这是被JPA禁止的,还是仅仅是日食链接的一个问题。
我找到的一个‘解决方案’就是复制我的实体类。不太好,但现在起作用了。
更多的答案仍然欢迎。
发布于 2012-03-30 01:07:35
让两个持久性单元使用相同的实体类似乎是个问题。
在我的例子中,我有一个单元用于查询数据,另一个单元用于身份验证。身份验证不需要知道我的实体类,所以在Netbeans中,我不得不取消选中"MyWebServiceProject“模块中的”包含所有实体类“。
或增加:
<exclude-unlisted-classes>true</exclude-unlisted-classes>
到该持久性单元的web.xml文件。
发布于 2013-05-30 15:14:50
我通过设置
<property name="eclipselink.canonicalmodel.subpackage" value="foobar"/>对于persistence.xml中的每个持久性单元。每个单元的值必须是唯一的。然后将这些类生成到不同的包中,例如。com.mycompany.foo.PojoOne_和com.mycompany.bar.PojoOne_而不是com.mycompany.PojoOne_。
Source
https://stackoverflow.com/questions/8938889
复制相似问题