Java jpa子图和MappedSuperclass抛出未知实体
我对子图有一个愚蠢的问题。这是我第一次使用实体图 我的公共库中有以下类:Java jpa子图和MappedSuperclass抛出未知实体,java,jpa,wildfly,Java,Jpa,Wildfly,我对子图有一个愚蠢的问题。这是我第一次使用实体图 我的公共库中有以下类: import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.ManyToMany; import javax.persistence.MappedSuperclass; @MappedSuperclass public abstract class NamedDomainObjectWithFiles exte
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.ManyToMany;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public abstract class NamedDomainObjectWithFiles extends NamedDomainObject {
/**
*
*/
private static final long serialVersionUID = 1L;
@ManyToMany(cascade = CascadeType.ALL)
private Set<File> files;
public Set<File> getFiles() {
return files;
}
public void setFiles(Set<File> files) {
this.files = files;
}
}
如果我只设置
@NamedEntityGraph(name = Kunde.EG_loadAll,
attributeNodes = {
@NamedAttributeNode(value = "files")
}
启动期间不会引发异常
我希望你能帮助我
我在wildfly 8.1和9.0.1上用相同的结果测试了这段代码
迈克尔
@编辑:
这是我的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="primary">
<jta-data-source>java:jboss/datasources/ObjektmanagementDS</jta-data-source>
<jar-file>lib/common-0.0.1.jar</jar-file>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/objektmanagement?UseUnicode=true&characterEncoding=utf8" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
java:jboss/datasources/ObjektmanagementDS
lib/common-0.0.1.jar
能否显示persistence.xml并说明它在部署中的位置?我可以将对象持久化到db,而不会出现任何问题。现在,我正试图从db中加载对象,其中包含文件列表。我想使用EntityGraphs来防止lazyloadingexception。我可以从文件对象中加载角色和文件类别的列表。所以我需要子图来加载列表。如果我不使用子图,将加载所有文件,但我无法访问列表。如果我如图所示定义子图并尝试发布,部署将崩溃。您解决问题了吗?我的部署也面临着同样的问题。请显示persistence.xml并说明它在部署中的位置好吗?我可以毫无问题地将对象持久化到db。现在,我正试图从db中加载对象,其中包含文件列表。我想使用EntityGraphs来防止lazyloadingexception。我可以从文件对象中加载角色和文件类别的列表。所以我需要子图来加载列表。如果我不使用子图,将加载所有文件,但我无法访问列表。如果我如图所示定义子图并尝试发布,部署将崩溃。您解决问题了吗?我的部署也面临同样的问题。
org.hibernate.MappingException: Unknown entity: de.xxx.common.domain.NamedDomainObjectWithFiles
@NamedEntityGraph(name = Kunde.EG_loadAll,
attributeNodes = {
@NamedAttributeNode(value = "files")
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="primary">
<jta-data-source>java:jboss/datasources/ObjektmanagementDS</jta-data-source>
<jar-file>lib/common-0.0.1.jar</jar-file>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/objektmanagement?UseUnicode=true&characterEncoding=utf8" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.format_sql" value="true" />
</properties>
</persistence-unit>
</persistence>