當調用save(或saveAndFlush)代碼時,我需要立即堅持(插入)實體到數據庫。如何在Activiti Service中立即將實體持久化/提交實體到數據庫任務
但是,雖然實體是在上下文中創建的,但它不會立即保存在數據庫中。
我們使用Spring Boot。
public interface MessageRepository extends JpaRepository<MessageEntity, Long> {
}
服務類
@Service
public class TestService {
@Autowired
private MessageRepository messageRepository;
@Transactional
public MessageEntity saveMessage(MessageEntity entity) throws Exception {
entity = messageRepository.saveAndFlush(entity);
return entity;
}
}
雖然實體創建它不會保持/立即提交到數據庫。
我們只在Activiti任務中遇到這個問題。
任何反饋將不勝感激。
謝謝。快速澄清。你如何定義會話。 session.persist(ENT); – Shawn
我們最終使用了EntityManager而不是SessionFactory。這樣做的缺點。 EntityManger看起來更標準。 '@Component public class MessageRepositoryCustomImpl implements 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
不錯的選擇。由於它是JPA標準,EntityManager始終是首選方式。解決方案是否真的適合你? –