当前位置: 首页 > 知识库问答 >
问题:

EnityManager不生成删除查询

欧阳正德
2023-03-14

我正在尝试删除实体,但未生成删除查询,并且控制台中没有显示错误:

@Override
@Transactional
public void removeClassObject(MyClassObject classObject) {
    MyClassObject ip = entityManager.find(MyClassObject.class, classObject.getId());
    entityManager.remove(ip);
}

注意:@Transactional来自springFramework包

编辑:

我的所有配置都是正常的,因为我已经有了merge和persist函数,没有任何问题,只是remove方法不生成任何sql查询,也不删除给定的实体。

编辑2:

我是这样获得entityManager的:

@PersistenceContext(type = PersistenceContextType.TRANSACTION)
protected EntityManager entityManager;

共有1个答案

秦诚
2023-03-14

如果使用@Transactional注释,则应考虑为服务使用接口,而不仅仅是实现。

@Transactional需要在bean上创建一个动态代理,以应用事务逻辑,如果服务有接口,则可以创建该逻辑。否则,您需要自己管理事务。

作为回答,我假设您使用@PersistanceContext注释创建实体管理器,并且您的服务没有接口。

早间信息:Spring交易

编辑:

还要确保您已经在配置中启用了事务。在这里寻找类似的错误,但配置链接错误

 类似资料:
  • 我有一个android应用程序,它在数组列表中绘制点的路径(名为“test”)。一种算法每次都会更新数组列表以使路径更短(它使用旅行推销员问题算法)。我目前面临的问题是以前的路径不清除,而是新的路径会覆盖以前的路径。

  • 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于记录删除页 应用程序可以包含允许用户删除数据库中记录的一组页。这组页通常由一个搜索页、一个结果页和一个删除页组成。删除页通常是一个与结果页一同使用的详细页。用户可以使用搜索页和结果页检索记录,并使用删除页来

  • 问题内容: 当我尝试从数据库中删除条目时,使用 然后我可以执行以下操作: 1)如果该行存在于数据库中,则将执行两个SQL查询:一个选择,然后一个删除 2)如果数据库中不存在该行,则仅执行选择查询 但是同样,更新不是这种情况。无论是否存在数据库行,都只会执行更新查询。 请让我知道为什么这种行为用于删除操作。这不是性能问题,因为遇到了两个查询而不是一个查询? 编辑: 我正在使用hibernate3.2

  • 以下示例将演示如何使用Delte查询,在DBUtils的帮助下删除记录。 我们将删除表中的一条记录。 语法 其中, deleteQuery − 删除包含占位符的查询。 queryRunner − 对象删除数据库中的员工对象。 为了理解上述与DBUtils相关的概念,我们编写一个将运行更新查询的示例。创建一个示例应用程序。 更新在DBUtils入门应用中创建的文件。 编译并运行应用程序,如下所述。

  • 我需要将XML内容绑定到pojo的String属性,为此我创建了自定义DomHandler来提取所需的部分,如下所示 将映射到pojo 我使用XSD生成我的POJO,并且我有几个自定义注释要添加到生成的POJO中,因此我使用maven-jaxb2-plugin。 问题是,它会根据需要添加注释以及与@xmlanyement互斥的@xmlement,有没有办法避免使用XSD添加@xmlement注释?

  • 问题内容: 当我尝试从数据库中删除条目时,使用 然后我可以执行以下操作: 1)如果该行存在于数据库中,则将执行两个SQL查询:一个选择,然后一个删除 2)如果数据库中不存在该行,则仅执行选择查询 但是同样,更新不是这种情况。无论是否存在数据库行,都只会执行更新查询。 请让我知道为什么这种行为用于删除操作。这不是性能问题,因为遇到了两个查询而不是一个查询? 编辑: 我正在使用休眠3.2.5 样例代码