Java 内部类-意外标记

Java 内部类-意外标记,java,inner-classes,persistence.xml,Java,Inner Classes,Persistence.xml,我有一个内在的类: @Entity public class InnerTypes implements Serializable { private static final long serialVersionUID = 3839105307661662120L; @Id public int id; public PrimitiveInnerTypes primitiveInnerTypes; public PrimitiveInnerTyp

我有一个内在的类:

@Entity
public class InnerTypes implements Serializable {

    private static final long serialVersionUID = 3839105307661662120L;

    @Id
    public int id;

    public PrimitiveInnerTypes primitiveInnerTypes;

    public PrimitiveInnerTypes getPrimitiveInnerTypes() {
        return primitiveInnerTypes;
    }

    public void setPrimitiveInnerTypes(PrimitiveInnerTypes primitiveInnerTypes) {
        this.primitiveInnerTypes = primitiveInnerTypes;
    }

    @Entity
    public static class PrimitiveInnerTypes implements Serializable {
         //some code ...
    }
}
我的persistence.xml上也有它

<class>pt.ptinovacao.persistencetester.model.InnerTypes$PrimitiveInnerTypes</class>
我不知道如何修复,如果我将$符号更改为a。我无法访问内部类,因为。仅适用于不同的软件包。我能做什么


感谢JPA规范第2.1段:

实体类必须是顶级类


因此,不能对实体使用嵌套类。使其成为顶级课程。

JPA规范第2.1段:

实体类必须是顶级类


因此,不能对实体使用嵌套类。使其成为顶级课程。

JPA规范第2.1段:

实体类必须是顶级类


因此,不能对实体使用嵌套类。使其成为顶级课程。

JPA规范第2.1段:

实体类必须是顶级类


因此,不能对实体使用嵌套类。使其成为顶级类。

但是,如果出现错误(一个
SQLException
),我怀疑EclipseLink确实允许它,但底层数据库不允许在其objectnames中使用
$
。在这种情况下,解决方法是添加一个显式名称。@MarkRotterVeel:同意。但是IMHO最合适的解决方案仍然是使其成为顶级类,以符合规范。我不知道是否可以更改该类并使其成为顶级类,但是,我会四处询问并尝试修复此问题。谢谢大家。不过,如果出现错误(一个
SQLException
),我怀疑EclipseLink确实允许这样做,但是底层数据库不允许在其objectnames中使用
$
。在这种情况下,解决方法是添加一个显式名称。@MarkRotterVeel:同意。但是IMHO最合适的解决方案仍然是使其成为顶级类,以符合规范。我不知道是否可以更改该类并使其成为顶级类,但是,我会四处询问并尝试修复此问题。谢谢大家。不过,如果出现错误(一个
SQLException
),我怀疑EclipseLink确实允许这样做,但是底层数据库不允许在其objectnames中使用
$
。在这种情况下,解决方法是添加一个显式名称。@MarkRotterVeel:同意。但是IMHO最合适的解决方案仍然是使其成为顶级类,以符合规范。我不知道是否可以更改该类并使其成为顶级类,但是,我会四处询问并尝试修复此问题。谢谢大家。不过,如果出现错误(一个
SQLException
),我怀疑EclipseLink确实允许这样做,但是底层数据库不允许在其objectnames中使用
$
。在这种情况下,解决方法是添加一个显式名称。@MarkRotterVeel:同意。但是IMHO最合适的解决方案仍然是使其成为顶级类,以符合规范。我不知道是否可以更改该类并使其成为顶级类,但是,我会四处询问并尝试修复此问题。谢谢大家
[EL Warning]: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.2.v20130514-5956486): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: unexpected token: INNERTYPES$PRIMITIVEINNERTYPES