save (또는 saveAndFlush) 코드가 호출되면 즉시 엔티티를 데이터베이스에 유지 (삽입)해야합니다.Activiti 서비스에서 즉시 엔티티를 데이터베이스에 저장/커밋하는 방법
비록 엔티티가 컨텍스트에서 작성되었지만 즉시 데이터베이스에 유지되지 않습니다.
우리는 스프링 부트를 사용하고 있습니다. 엔티티가 만들어집니다 있지만 서비스 클래스
@Service
public class TestService {
@Autowired
private MessageRepository messageRepository;
@Transactional
public MessageEntity saveMessage(MessageEntity entity) throws Exception {
entity = messageRepository.saveAndFlush(entity);
return entity;
}
}
에서
public interface MessageRepository extends JpaRepository<MessageEntity, Long> {
}
즉시 데이터베이스에 커밋/유지되지 않습니다.
우리는 Activiti 작업에서만이 문제를 직면하고 있습니다.
모든 의견을 환영합니다.
감사합니다. 빠른 설명. 어떻게 세션을 정의 할 수 있습니다. session.persist (ent); – Shawn
우리는 SessionFactory 대신에 EntityManager를 사용하게되었습니다. 이 일에 대한 단점. EntityManger는 더 표준적인 것처럼 보입니다. @Component MessageRepositoryCustomImpl public class MessageRepositoryCustom { \t \t @PersistenceContext EntityManager entityManager; \t @Override \t @Transactional (전파 = Propagation.REQUIRES_NEW) \t 공개 MessageEntity saveImmediate (MessageEntity 엔티티) { \t \t entityManager.persist (엔티티); \t \t return entity; \t} } – Shawn
좋은 선택입니다. EntityManager는 항상 JPA 표준이므로 선호되는 방식입니다. 솔루션이 실제로 작동 했습니까? –