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
Java 与JPA合作_Java_Jpa_Persistence - Fatal编程技术网

Java 与JPA合作

Java 与JPA合作,java,jpa,persistence,Java,Jpa,Persistence,我有两个表,如下图所示: 正如您所看到的,这是一个非常简单的示例,与此相关的SQL代码是: CREATE TABLE mere ( idmere INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nom VARCHAR(50) NOT NULL, PRIMARY KEY(idmere) ); CREATE TABLE fil ( idfil INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, mere_idmere INTEG

我有两个表,如下图所示:

正如您所看到的,这是一个非常简单的示例,与此相关的SQL代码是:

CREATE TABLE mere (
idmere INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nom VARCHAR(50) NOT NULL,
PRIMARY KEY(idmere)
);

CREATE TABLE fil (
idfil INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
mere_idmere INTEGER UNSIGNED NOT NULL,
nom VARCHAR(50) NOT NULL,
PRIMARY KEY(idfil, mere_idmere),
FOREIGN KEY(mere_idmere)
REFERENCES mere(idmere)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION
);
使用Netbeans,我创建了两个实体和两个JPA控制器(与创建的实体相关):

插入新行时,我收到此错误(但新行仅插入表中):

更新

我的新源代码:

 EntityManagerFactory emf=Persistence.createEntityManagerFactory("testvirugulePU");
 MereJpaController mjc=new MereJpaController(emf);

 FilJpaController fjc=new FilJpaController(emf);

 Mere m=new Mere(null,"mere1");
 FilPK fpk=new FilPK();
 Fil f=new Fil(fpk,"fils1");
 java.util.List<Fil> lf=new ArrayList<Fil>();
 lf.add(f);
 m.setFilList(lf);

 mjc.create(m);    
如何解决这个问题?谢谢。

NPE是最容易修复的异常之一,因为堆栈跟踪告诉您发生问题的行和文件。在文本编辑器中进行简单的检查,并显示行号,通常就可以做到这一点

java.lang.NullPointerException
at testvirugule.FilJpaController.create(FilJpaController.java:37)
at testvirugule.Main.main(Main.java:35)

转到
FilJpaController
中的第37行,查看该行上的每个对象引用。其中一个为null,因为您没有正确初始化它

您有一个空指针异常。你需要缩小范围。使用debugger.done,问题已更新,谢谢:)抱歉,我忘记将setFilList(lf)用于将实例(m)绑定到Fil(lf)列表;我的问题是,如何让级联持续下去?我会首先关注NPE。请给一位顾客一张。在我以前的代码中,只是我忘了写f.setmile(m);这就产生了NPE,但数据库中的问题是idFil值不会增加,它始终为0。。。读完这篇文章后:我修改了代码,但仍然没有结果。。。有关于如何自动插入Fil(lf)列表的帮助吗??
Exception in thread "main" javax.persistence.EntityNotFoundException: Could not find   entity for id: testvirugule.FilPK[ idfil=0, mereIdmere=0 ]
at  org.eclipse.persistence.internal.jpa.EntityManagerImpl.getReference(EntityManagerImpl.java:1279)
at testvirugule.MereJpaController.create(MereJpaController.java:44)
at testvirugule.Main.main(Main.java:31)
   Java Result: 1
java.lang.NullPointerException
at testvirugule.FilJpaController.create(FilJpaController.java:37)
at testvirugule.Main.main(Main.java:35)