我有这个 JPAServiceImpl 方法:
@Override
@Transactional
public void createPageContent(SellerContent content, long userId) {
Seller s = em.find(Seller.class,userId);
content.setSeller(s);
content.setSeller(s);
s.addContent(content);
}
它可以工作,但我想知道它是如何工作的,因为没有
em.merge(seller)
or em.persist(content)
。
卖家有 CascadeType.ALL 与 SellerContent 关系。
如果这是正常行为,您能解释一下吗?我会同时写em.merge(seller)
和em.persist(content)
。这是错的吗?
例如,我写了这个方法:
@Override
@Transactional
public void createFeedback(CartLine cartLine, String feedbackString) {
Product product = cartLine.getProduct();
Feedback feedback = new Feedback();
feedback.setFeedbackContent(feedbackString);
feedback.setCartLine(cartLine);
cartLine.setFeedback(feedback);
product.getFeedbacks().add(feedback);
feedback.setProduct(product);
em.persist(feedback);
em.merge(cartLine);
em.merge(product);
}
在这种方法中,我编写了合并和持久化指令。这是错的吗?