두 개의 외래 키가있는 Mail이라는 jpa 엔티티를 작성했습니다.속성을 유지하지 않고 엔티티를 수정할 수없는 이유는 무엇입니까?
public void modifyMail(Mail mail) {
Mail m = em.find(Mail.class, mail.getId());
m.setUser(mail.getUser());
m.setType(mail.getType());
em.persist(m);
}
을했지만 작동하지 않습니다 내가 메일을 수정할 때
public class Mail implements Serializable {
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name = "auteur")
private User user;
@JoinColumn(name = "typeC")
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Type typeMail;
....
가와,이 좋아해요. glassfich 로그에서 "em.persist"는 올바르게 작동하지만 glassfich는 User 테이블에 삽입을 나타냅니다. 테이블 User에서 이름은 고유하므로 작동하지 않으며 glassfich가 메일 연관 사용자를 생성하려고하는 이유를 알지 못합니다. 누군가 왜 제발 저에게 말해 줄 수 있는지 알고 있다면?
및 "em.persist"가 필요하지 않음을 추가 할 수 있습니다. 개체가 "관리되는"경우 필드에 대한 업데이트가 가로 채기 때문입니다. –
@BillyFrost : 정말요? 나는 결코 이것을 시도하지 않았다; 나는 내가 객체 (그리고 내가 본 모든 예제는 결국'persist() '를 호출 할 것임)에 대한 변경을 "커밋"해야한다고 생각했다. 하지만 당신 말이 맞아요. http://www.objectdb.com/java/jpa/persistence/update –
아론이주는 첫 번째 코드를 시도해 주셔서 감사합니다. – Ediruth