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());

当前条目不会在数据库中更新,尽管知道代码在其他项目中工作。我使用来自相同LessonTb类的相同get和set方法,该方法用于添加新条目和删除条目。

什么可能是错的,我如何解决我的问题?

有几种可能性。也许你可以做更多的研究,至少排除其中的一些:

  1. 你正在使用内存数据库,你没有意识到当你的应用程序终止时,所有的数据库内容都会丢失。
  2. 你没有处于自动提交模式,并且你的应用程序在更新后未能发出commit语句
  3. 您实际上并没有发出您认为正在发出的更新声明。由于某些原因,您的程序流没有到达该代码。
  4. 你的更新语句遇到了一个错误,但它不是那种导致异常的错误。相反,会返回一个错误代码,但不会抛出异常。
  5. 数据库有多个副本,或者数据库中有多个模式副本,你正在更新数据库的一个副本,但查询另一个副本。

帮助您更深入地诊断问题的一个强大工具是学习如何使用- derby.language。logStatementText=true并在derby.log中读取您发出的实际SQL语句,以及这些语句的结果是什么。这里有几个链接可以帮助你开始:https://db.apache.org/derby/docs/10.4/tuning/rtunproper43517.html和http://apache-database.10148.n7.nabble.com/How-to-log-queries-in-Apache-Derby-td136818.html

相关内容

  • 没有找到相关文章

最新更新