Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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
Java Hashmap的持久性<;整数,对象>;_Java_Jpa 2.1_Netbeans 8.1 - Fatal编程技术网

Java Hashmap的持久性<;整数,对象>;

Java Hashmap的持久性<;整数,对象>;,java,jpa-2.1,netbeans-8.1,Java,Jpa 2.1,Netbeans 8.1,我在尝试映射Hashmap时遇到这些错误 我不知道怎么解决这个问题。 Netbeans 8.1 Jpa 2.1 映射 @Entity @Table(name = "libros") public class Libro implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "idlibro", nullable = false) private int id

我在尝试映射Hashmap时遇到这些错误 我不知道怎么解决这个问题。 Netbeans 8.1 Jpa 2.1

映射

@Entity
@Table(name = "libros")
public class Libro implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idlibro", nullable = false)
private int idlibro;

@Column(name = "isbn", nullable = false, length = 50, unique = true)
private long isbn;

@Column(name = "titulo", nullable = false, length = 200, unique = false)
private String titulo;

@Column(name = "anio", nullable = true, length = 4, unique = false)
private int anio;

@Column(name = "idioma", nullable = true, length = 50, unique = false)
private String idioma;

@JoinColumn(name = "idautor", referencedColumnName = "idautor", insertable=false, updatable=true)
@ManyToOne(optional = false)
private Autor elautor;

@Column(name = "genero", nullable = true, length = 50, unique = false)
private String genero;

@JoinColumn(name = "ideditorial", referencedColumnName = "ideditorial", insertable=false, updatable=true)
@ManyToOne(optional = false)
private Editorial laeditorial;

@ElementCollection
@MapKeyColumn(name="nrocopia")
@Column(name="ejemplares")
@CollectionTable(name="ejemplares", joinColumns=@JoinColumn(name="idejemplar"))
private HashMap<Integer, Ejemplar> ejemplarlibro;


@Column(name = "estado", nullable = true, length = 50, unique = false)
private String estado;
@实体
@表(name=“libros”)
公共类Libro实现了可序列化{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“idlibro”,nullable=false)
伊德利布洛私人酒店;
@列(name=“isbn”,nullable=false,length=50,unique=true)
私人长期isbn;
@列(name=“titulo”,nullable=false,length=200,unique=false)
私有字符串titulo;
@列(name=“anio”,nullable=true,length=4,unique=false)
私人国际组织;
@列(name=“idioma”,nullable=true,length=50,unique=false)
私有字符串惯用法;
@JoinColumn(name=“idautor”,referencedColumnName=“idautor”,insertable=false,updateable=true)
@多通(可选=假)
私人自动售货机;
@列(name=“慷慨”,nullable=true,length=50,unique=false)
私人字符串慷慨;
@JoinColumn(name=“ideditional”,referencedColumnName=“ideditional”,insertable=false,updateable=true)
@多通(可选=假)
私人编辑;
@元素集合
@MapKeyColumn(name=“nrocopia”)
@列(name=“eJompares”)
@CollectionTable(name=“eJoinPress”,joinColumns=@JoinColumn(name=“idejemplar”))
私有HashMap ejemplarlibro;
@列(name=“estado”,nullable=true,length=50,unique=false)
私人字符串estado;
线程“main”javax.persistence.PersistenceException中的异常:异常[EclipseLink-28019](Eclipse持久性服务-2.5.2.v20140319-9ad6abd):org.Eclipse.persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit[BibliotecaTPFINALPU]的部署失败。请关闭此PersistenceUnit的所有工厂。 内部异常:异常[EclipseLink-0](Eclipse持久性服务-2.5.2.v20140319-9ad6abd):org.Eclipse.Persistence.exceptions.IntegrityException

描述符异常: 异常[EclipseLink-138](Eclipse持久性服务-2.5.2.v20140319-9ad6abd):org.Eclipse.Persistence.exceptions.DescriptorException 异常描述:属性[EJMPParlibro]的类型为[class java.util.HashMap],但映射使用透明间接(延迟加载),要求它是[IndirectMap]的超类。 映射:org.eclipse.persistence.mappings.directmapping[ejemplarlibro] 描述符:RelationalDescriptor(Clases.Libro-->[DatabaseTable(libros)])

运行时异常:
位于org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.CreateDeploydFailedPersistenceException(EntityManagerSetupImpl.java:820)
位于org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:760)
位于org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:204)
位于org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:182)
位于org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getDatabaseSession(EntityManagerFactoryImpl.java:527)
位于org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:140)
位于org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:177)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:79)
位于javax.persistence.persistence.createEntityManagerFactory(persistence.java:54)
在Jpa.ControladorPersistencia.getEmf(ControladorPersistencia.java:20)
在Controladores.bibliotecontrolador.(bibliotecontrolador.java:54)
在bibliotecapfinal.BibliotecaMain.main(BibliotecaMain.java:46)
原因:异常[EclipseLink-28019](Eclipse持久性服务-2.5.2.v20140319-9ad6abd):org.Eclipse.Persistence.exceptions.EntityManagerSetupException 异常描述:PersistenceUnit[BibliotecaTPFINALPU]的部署失败。请关闭此PersistenceUnit的所有工厂。 内部异常:异常[EclipseLink-0](Eclipse持久性服务-2.5.2.v20140319-9ad6abd):org.Eclipse.Persistence.exceptions.IntegrityException
描述符异常:

如果您将字段声明为Map类型而不是实现(HashMap)。我使用的JPA提供程序支持您在那里使用的代码,但EclipseLink似乎不太可靠。如果您将字段声明为Map类型而不是实现(HashMap),则可能我使用的.JPA提供程序支持您在那里使用的代码,但EclipseLink似乎不太可靠。
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createDeployFailedPersistenceException(EntityManagerSetupImpl.java:820)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:760)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:204)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:182)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getDatabaseSession(EntityManagerFactoryImpl.java:527)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:140)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:177)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at Jpa.ControladorPersistencia.getEmf(ControladorPersistencia.java:20)
at Controladores.BibliotecaControlador.<init>(BibliotecaControlador.java:54)
at bibliotecatpfinal.BibliotecaMain.main(BibliotecaMain.java:46)