java.lang.RuntimeException: javax.annotation.processing.FilerException: Attempt to recreate a file for type domein.ClubLes_
[javac] at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:964)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:881)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.access$2100(JavacProcessingEnvironment.java:110)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1202)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1311)
[javac] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1250)
[javac] at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:928)
[javac] at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:306)
[javac] at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:165)
[javac] at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:57)
[javac] at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:43)
[javac] Caused by: javax.annotation.processing.FilerException: Attempt to recreate a file for type domein.ClubLes_
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.checkNameAndExistence(JavacFiler.java:727)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceOrClassFile(JavacFiler.java:489)
[javac] at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceFile(JavacFiler.java:426)
[javac] at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.generateCanonicalModelClass(CanonicalModelProcessor.java:98)
[javac] at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.generateCanonicalModelClasses(CanonicalModelProcessor.java:226)
[javac] at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:403)
[javac] ... 11 more
BUILD FAILED
E:\ProjectJava\java-g11\Taijitan\nbproject\build-impl.xml:1134: The following error occurred while executing this line:
E:\ProjectJava\java-g11\Taijitan\nbproject\build-impl.xml:381: Compile failed; see the compiler error output for details.
起初我以为是因为我不小心忘记添加子类,但是它仍然给我同样的错误。 ClubLes继承自Les,Les是仅包含吸气剂的接口。我还需要使接口可序列化吗?我不知道怎么了。ClubLes
@Entity public class ClubLes implements Serializable, Les { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "LesId") private int id; @Column(name = "Naam") String naam; @Column(name = "Soort") String soort; @ManyToOne @JoinColumn(name = "GraadNumeriek") Graad graad; @Column(name = "FotoUrl") private String fotoUrl; @Column(name = "Beschrijving") private String beschrijving; @Column(name = "VideoUrl") private String videoUrl; public ClubLes() { }
Les interface
public interface Les { int getId(); String getNaam(); String getSoort(); //More getters }
PU我只有一个持久性单元,看起来像这样
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="TaijitanPU" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>domein.Graad</class> <class>domein.Locatie</class> <class>domein.ClubPersoon</class> <class>domein.ClubActiviteit</class> <class>domein.ClubLes</class> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=Taijitan"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <property name="javax.persistence.jdbc.password" value="Wachtwoord2019"/> <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> </properties> </persistence-unit> </persistence>
[我还注意到,当我从JPA删除clublesson时,它会为ClubPersoon引发相同的错误,遵循相同的方案
<exclude-unlisted-classes>true</exclude-unlisted-classes>
添加到persistence.xml
。我认为该类正在处理两次,原因是缺少此语句。