Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EclipseLink JPA-RS中的静态嵌套类_Jpa_Eclipselink_Moxy_Jpa Rs - Fatal编程技术网

EclipseLink JPA-RS中的静态嵌套类

EclipseLink JPA-RS中的静态嵌套类,jpa,eclipselink,moxy,jpa-rs,Jpa,Eclipselink,Moxy,Jpa Rs,我在使用EclipseLink JPA-RS的静态嵌套类时遇到问题。我有一个简单的JPA实体类 @Entity @XmlAccessorType(XmlAccessType.FIELD) public class Inventory { @Id private Integer id; @ElementCollection private List<Item> items; @Embeddable @XmlAccessorType(

我在使用EclipseLink JPA-RS的静态嵌套类时遇到问题。我有一个简单的JPA实体类

@Entity
@XmlAccessorType(XmlAccessType.FIELD)
public class Inventory {

    @Id
    private Integer id;

    @ElementCollection
    private List<Item> items;

    @Embeddable
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class Item {

    }

}
@实体
@XmlAccessorType(XmlAccessType.FIELD)
公共类目录{
@身份证
私有整数id;
@元素集合
私人清单项目;
@可嵌入
@XmlAccessorType(XmlAccessType.FIELD)
公共静态类项{
}
}
这是持久性单元中唯一的类。当我尝试通过GET请求检索实体时,我在日志中看到以下异常:

Dec 6, 2014 4:50:38 AM org.eclipse.persistence.jpa.rs.util.JPARSLogger exception
FINER: An Exception was thrown while creating a JPA persistence context for persistence unit: [inventory]: [Exception [EclipseLink-50007] (Eclipse Persistence Services - 2.4.2.v20130514-5956486): org.eclipse.persistence.exceptions.JAXBException
Exception Description: Name collision.  Two classes have the XML type with uri  and name item.]
Local Exception Stack: 
Exception [EclipseLink-50007] (Eclipse Persistence Services - 2.4.2.v20130514-5956486): org.eclipse.persistence.exceptions.JAXBException
Exception Description: Name collision.  Two classes have the XML type with uri  and name item.
    at org.eclipse.persistence.exceptions.JAXBException.nameCollision(JAXBException.java:213)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processTypeQName(AnnotationsProcessor.java:1727)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.buildTypeInfo(AnnotationsProcessor.java:754)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.postBuildTypeInfo(AnnotationsProcessor.java:680)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.buildNewTypeInfo(AnnotationsProcessor.java:4614)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processPropertyTypes(AnnotationsProcessor.java:1058)
    at org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processPropertyTypes(AnnotationsProcessor.java:1005)
    at org.eclipse.persistence.jaxb.compiler.XMLProcessor.processXML(XMLProcessor.java:424)
    at org.eclipse.persistence.jaxb.compiler.Generator.<init>(Generator.java:103)
    at org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext$MetadataContextInput.createContextState(DynamicJAXBContext.java:235)
    at org.eclipse.persistence.jaxb.JAXBContext.<init>(JAXBContext.java:169)
    at org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext.<init>(DynamicJAXBContext.java:70)
    at org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory.createContextFromOXM(DynamicJAXBContextFactory.java:347)
    at org.eclipse.persistence.jpa.rs.PersistenceContext.createDynamicJAXBContext(PersistenceContext.java:256)
    at org.eclipse.persistence.jpa.rs.PersistenceContext.<init>(PersistenceContext.java:169)
    at org.eclipse.persistence.jpa.rs.PersistenceFactoryBase.bootstrapPersistenceContext(PersistenceFactoryBase.java:56)
    at org.eclipse.persistence.jpa.rs.PersistenceFactoryBase.get(PersistenceFactoryBase.java:133)
    at org.eclipse.persistence.jpa.rs.resources.common.AbstractResource.getPersistenceContext(AbstractResource.java:206)
    at org.eclipse.persistence.jpa.rs.resources.common.AbstractEntityResource.find(AbstractEntityResource.java:92)
    at org.eclipse.persistence.jpa.rs.resources.unversioned.EntityResource.find(EntityResource.java:52)
2014年12月6日上午4:50:38 org.eclipse.persistence.jpa.rs.util.JPARSLogger异常
FINER:为持久化单元[inventory]创建JPA持久化上下文时引发异常:[Exception[EclipseLink-50007](Eclipse持久化服务-2.4.2.v20130514-5956486):org.Eclipse.persistence.exceptions.jaxbeException
异常描述:名称冲突。两个类的XML类型具有uri和名称项。]
本地异常堆栈:
异常[EclipseLink-50007](Eclipse持久性服务-2.4.2.v20130514-5956486):org.Eclipse.Persistence.exceptions.jaxbeexception
异常描述:名称冲突。两个类的XML类型具有uri和名称项。
位于org.eclipse.persistence.exceptions.JAXBException.namecollion(JAXBException.java:213)
位于org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processTypeQName(AnnotationsProcessor.java:1727)
位于org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.buildTypeInfo(AnnotationsProcessor.java:754)
位于org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.postBuildTypeInfo(AnnotationsProcessor.java:680)
位于org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.buildNewTypeInfo(AnnotationsProcessor.java:4614)
位于org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processPropertyTypes(AnnotationsProcessor.java:1058)
位于org.eclipse.persistence.jaxb.compiler.AnnotationsProcessor.processPropertyTypes(AnnotationsProcessor.java:1005)
位于org.eclipse.persistence.jaxb.compiler.XMLProcessor.processXML(XMLProcessor.java:424)
位于org.eclipse.persistence.jaxb.compiler.Generator(Generator.java:103)
位于org.eclipse.persistence.jaxb.DynamicJAXBContext$MetadataContextInput.createContextState(DynamicJAXBContext.java:235)
位于org.eclipse.persistence.jaxb.JAXBContext(JAXBContext.java:169)
位于org.eclipse.persistence.jaxb.DynamicJAXBContext.(DynamicJAXBContext.java:70)
位于org.eclipse.persistence.jaxb.DynamicJAXBContextFactory.createContextFromOXM(DynamicJAXBContextFactory.java:347)
位于org.eclipse.persistence.jpa.rs.PersistenceContext.createDynamicJAXBContext(PersistenceContext.java:256)
位于org.eclipse.persistence.jpa.rs.PersistenceContext(PersistenceContext.java:169)
位于org.eclipse.persistence.jpa.rs.PersistenceFactoryBase.bootstrapPersistenceContext(PersistenceFactoryBase.java:56)
位于org.eclipse.persistence.jpa.rs.PersistenceFactoryBase.get(PersistenceFactoryBase.java:133)
位于org.eclipse.persistence.jpa.rs.resources.common.AbstractResource.getPersistenceContext(AbstractResource.java:206)
位于org.eclipse.persistence.jpa.rs.resources.common.AbstractEntityResource.find(AbstractEntityResource.java:92)
位于org.eclipse.persistence.jpa.rs.resources.unversioned.EntityResource.find(EntityResource.java:52)
EclipseLink JAXB实现(MOXy)似乎无法处理该类。我的理解是,在JPA中,只有实体类必须是顶级类。属性允许使用静态嵌套类

奇怪的是,这个类可以很好地处理普通的EclipseLink。这是否意味着JPA-RS有自己处理JPA类的方法?是否可以将其与examplar类协调

我正在使用EclipseLink 2.4.2(和Jersey 1.18.2作为JAX-RS实现,如果需要的话)