我有一个名为@Transactional 的 CDI 命名 Bean 的问题。
我用的是 WildFly 11.1.0.Final.
这里的代码:https://gist.github.com/stefanwendelmann/7a1f8352900067d5a59826d6ee205044
这是 persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="QuoLoco" transaction-type="JTA">
<description>Verbindung zur QuoLoco Datenbank</description>
<jta-data-source>java:/QUOLOCO_NORM</jta-data-source>
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="hibernate.format_sql" value="false"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.id.new_generator_mappings" value="false"/>
</properties>
</persistence-unit>
</persistence>
当我调用方法“doChange”并且仅编辑 Empfangseinheittypen 参数时,em.remove 和 em.persist 不会触发刷新。
当我调用方法“doChange”并编辑一些 main Empfangseinheittypen empfangseinheittyp 时,我发现 Empfangseinheittypen 参数不需要冲洗
我做错了什么?
两种方法都是公开的。
请看附上的申请图片
在此先感谢您的帮助
根据评论,doChange 是从同一个 bean 调用的。 问题类似于@Transactional 从另一个方法调用的方法没有获得事务,这意味着事务不会以 doChange 结束,因此您不能期望从方法返回时完成刷新。