2010-03-08 5 views
0

나는 User와 Collection에 두 개의 객체가있다. 내 "작성"서비스, 나는 모든 사용자에 추가, 나는 내 객체를 볼 때Hibernate/Spring : 컬렉션 유지하기

((SessionFactory) sessionFactory).getCurrentSession().save(user); 

을 말한다 내 DAO를 사용하여 사용자를 생성하는 HashSet의에 넣어, 권한의 무리를 읽어 괜찮아 보이지만 데이터베이스를 볼 때 데이터베이스에 세트를 추가하지 않았습니다.

이 디버깅에 대한 제안 사항은 무엇입니까? 전형적인 잡았다?

건배 당신이 당신의 일대 다 관계, 특히 CASCADE 옵션을 정의하는 방법을

+0

코드 조각을 제공하십시오. 너는 어떻게 추가하고 있니? 컬렉션이 가득 찼음을 확인했습니다 (로깅을 통해) – Bozho

답변

1

솔루션은 단순히 다음과 같습니다. 사용자에게 권한 HashSet을 추가했지만 사용 권한의 사용자 HashSet에 사용자를 추가하지 않았습니다. Hibernate는 업데이트 될 양측을 필요로한다.

건배

PS, 충분하지 않은 코드에 대한 의견에, 나는 설명은 스레드를 방문 다른 사람과 관련이 정도로는 일반적으로 만들기 위해 매우 충분했다 생각합니다.

+2

아니요, 그렇지 않았습니다. 당신은 문제가 될 수있는 3 가지 대답이 주어졌지만 당신의 설명 후에는 배제되었다는 것을 알 수 있습니다. – Bozho

+0

+1 Bozho 님의 의견. @niklassaers - 처음부터 관련 정보를 제공했다면 다른 사람들의 시간과 노력을 낭비하지 않았을 것입니다. 그리고 당신이 잘못하지 않은 것처럼 행동하십시오. – Padmarag

+0

독자가 협회가 양방향이라고 마술처럼 이해할 수 있었던 방법을 말해주십시오. 문제를 올바르게 표현할 수 없다면, 적어도 그것을 인정하고 우스꽝스럽게 가정하는 대신에 도움을 요청하는 사람들에게 관련 정보를 제공해야합니다. 그리고 정말로 질문을하는 방법을 배우는 것이 필요합니다 (http://catb.org/~esr/faqs/smart-questions.html). –

0

확인하고 그것을 확인은 컬렉션을 지속 할 수있는 값이 있습니다.

+0

이 세트는 MappedBy = "users", targetEntity = Permission.class를 사용하고 있으며, Permission.class는 cascade = {CascadeType.PERSIST, CascadeType.MERGE}를 사용합니다. 괜찮아 보이니? – niklassaers

+0

User.class에서 일대 다 관계를 정의 할 때 계단식 옵션을 정의해야합니다. – pedromarce

+0

아, 다 대다 관계입니다. 많은 사용자가 많은 권한을 가질 수 있습니다. – niklassaers