:JPQL 대량 삭제 후에 EntityManger를 새로 고치십니까? 내 심/글래스 피쉬/JPA 컨테이너에서 다음과 같은 작업을 실행 한 후
요청 된 열이 성공적으로 나는 SQL 워크 벤치를 사용하여 확인할 수 있습니다 DB에서 삭제 얻을@ApplicationScoped
public class JpaGlossaryDataAccessObject implements IGlossaryDataAccessObject {
// ...
@Transactional
public void deleteColumn(String glossaryName, String columnName) {
final GlossaryColumn column = getColumn(glossaryName, columnName);
entityManager.remove(column);
}
// ...
}
. 그러나 이후에 다음 메서드를 호출 할 때 : 기본적으로 상기 열이 포함 된 용어집을 반환
@ApplicationScoped
public class JpaGlossaryDataAccessObject implements IGlossaryDataAccessObject {
// ...
@Transactional
public List<Glossary> getGlossaries(Collection<String> glossaryNames) {
glossaryNames.retainAll(getGlossaryNames());
return entityManager.createQuery(SELECT_ALL_NAMED_GLOSSARIES, Glossary.class).setParameter(GLOSSARY_NAMES_PARAMETER_INDEX, glossaryNames).getResultList();
}
// ...
}
을, 삭제 된 열은 용어 객체 아직! 그들은 데이터베이스에 더 이상 존재하지 않지만. 어떻게 이럴 수있어? 이 작업을 수행하기 위해 수행해야 할 몇 가지 추가 새로 고침이 있습니까?
내 beans.xml 환경은 방법으로, 다음과 같습니다 : 그래서
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="urn:java:ee"
xmlns:security="urn:java:org.jboss.seam.security" xmlns:permission="urn:java:org.jboss.seam.security.permission"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd">
<alternatives />
<decorators />
<interceptors>
<class>org.jboss.seam.security.SecurityInterceptor</class>
<class>org.jboss.seam.transaction.TransactionInterceptor</class>
</interceptors>
<security:IdentityImpl>
<s:modifies />
<security:authenticatorClass>ch.diction.webportal.security.seam.authentication.ChallengeResponseIdmAuthenticatorDecorator
</security:authenticatorClass>
</security:IdentityImpl>
</beans>
, 내가 무엇을 놓치고?
미리 감사와 안부 파스칼
거래 관리자 란 무엇입니까? –
그게 무슨 뜻인지 알고 싶다면 Seam 트랜잭션 인터셉터를 사용하고 있습니다 : org.jboss.seam.transaction.TransactionInterceptor –