2011-03-16 3 views
0

"판매"엔티티가 있습니다. 엔티티가 지속되기 전에 "소득"엔티티를 만들고 싶습니다. 세션 빈에서이 작업을 수행 할 수 있지만 판매 엔터티 내부에 캡슐화 된 것이 더 좋으면 좋겠다.JPA 엔티티 다른 엔티티를 지속 중임

em.persist(sale); 

을 그리고 그것은 자동으로 소득 엔티티를 만들 것 그것뿐만 아니라 지속 : 그래서 내가 할 수 있었다.

나는 그들을 연관시킬 수 있고 계단식을 지속 할 수 있기 때문에 판매와 소득을 연관시키지 않기를 바랍니다.

판매 법인이 소득 실체의 인스턴스를 생성 한 다음 EntityManager에서 persist 메소드를 호출하는 것과 같습니다. 이는 이것이 가능하지도 않고 EJB가 수행해야한다고 생각하기 시작한 좋은 아이디어이기도합니다 . 의견?

+0

이유가 있나요? 다른 사람들이 코드를 유지 관리/유지 관리하기가 더 어려울 수있는 디자인을 갖는 것 이외에 다른 것이 무엇인지 알 수 없습니다. – Christina

+0

@Christina, 나는 잘 모르겠다. 판매 법인이 그것을 수행했다면 상위 레이어에서 그 복잡성을 숨겨서 매매를 만들 때마다 두 엔티티를 모두 생성하는 것을 기억할 필요가 없다고 생각했다. 나는 이것에 대해 많은 경험이 없다. 좋은 생각이 아닌가? – arg20

+1

Personnaly 정상적으로 사람들이 엔티티가 그런 것들을 일상에서 벗어나기를 기대하지 않기 때문에 나는 정말로 좋은 이유가 없다면 나는 그것을하지 않을 것입니다. 코드의 여러 위치에서 두 엔티티를 작성해야하는 경우, EJB에서 개인 메소드 (또는 둘 이상의 EJB에서 호출해야하는 경우 보조 클래스)를 가질 수 있습니다. 이것은 코드를 읽는 사람들이 메소드가 호출되는 것을보고, PrePersist 어노테이션이나 대부분의 사람들이 거기에 있다는 것을 모르는 경우에 찾지 않을 유사한 것과 비슷한 어떤 것을 볼 수 있다는 이점이 있습니다. – Christina

답변

0

@PrePersist 주석을 사용해 보셨습니까? 당신이 당신의 EJB에서 직접 수입 엔티티를 유지하지 않으려는 이유

JPA prepersist

+0

네,하지만 두 인스턴스를 연결하고 케스케이드 지속성을 유지하지 않으면 엔티티가 유지되지 않습니다. – arg20

관련 문제