Netbeans实体管理器不更新Derby数据库

时间:2015-10-10 11:00:21

标签: java netbeans derby

我目前正在使用自动创建的类和实体管理器,该管理器是在从NetBeans绑定到数据库以获取和设置值到derby数据库时创建的。 但是,当我想使用以下内容更新/编辑字段时

LessonTb Obj = new LessonTb();
        Obj.setAdditionalResources(Paths);
        Obj.setDescription(LessonDescription);
        Obj.setLessonName(LessonName);
        Obj.setLessonPath(LessonName + ".txt");
        Obj.setRecommendedTest(RecommendedTest);
EUCLIDES_DBPUEntityManager.getTransaction().begin();
EUCLIDES_DBPUEntityManager.getTransaction().commit();

lessonTbList.clear();
lessonTbList.addAll(lessonTbQuery.getResultList());

尽管知道代码在其他项目中有效,但当前Entry不会在数据库中更新。我使用相同的LessonTb类中的get和set方法,这些方法用于添加新条目以及删除和输入。

可能出现什么问题,如何解决问题?没有例外被抛出。

1 个答案:

答案 0 :(得分:0)

这里有几种可能性。也许你可以做更多的研究来统治至少其中一些:

  1. 您正在使用内存数据库,并且在应用程序终止时您没有意识到所有数据库内容都会丢失。
  2. 您未处于自动提交模式,并且您的应用程序在更新后未能发出commit语句
  3. 您实际上并未发布您认为正在发布的更新声明。出于某种原因,您的程序流程未达到该代码。
  4. 您的更新语句遇到错误,但不是那种导致异常的错误。相反,返回了错误代码,但没有抛出异常。
  5. 数据库有多个副本,或者数据库中有多个模式副本,而且您正在更新数据库的一个副本,但查询另一个副本。
  6. 帮助您更深入地诊断事物的一个强大工具是学习如何使用-Dderby.language.logStatementText = true并在derby.log中读取您发出的实际SQL语句,以及这些语句的结果是什么。这里有几个链接可以帮助您开始这样做:https://db.apache.org/derby/docs/10.4/tuning/rtunproper43517.htmlhttp://apache-database.10148.n7.nabble.com/How-to-log-queries-in-Apache-Derby-td136818.html