2013-06-26 8 views
0

웹 응용 프로그램을 프로그래밍해야합니다. 사용자는 질문 목록을 포함하는 설문지를 만들 수 있어야합니다 (질문을 만들 수도 있습니다).Playframework! 두 모델 간의 관계

Questionnaire.java와 Question.java를 만들었으며 다음과 같은 목록을 설문지와 연결할 수있는 모든 방법을 찾았습니다. JoinColumn의 유무에 관계없이 OneToMany/ManyToOne 방식으로 매핑이 가능합니다. Embeddedable, EmbeddedId ...

나는 작동해야한다고 알고 있지만, 질문지를 만들려고 할 때마다 질문을 추가 할 때마다 포인터 또는 SQL 쿼리 오류가 발생합니다.

나는 많은 도움이되지 않을 방법을 시도했기 때문에 여기에 코드를 넣지 않았다. 나는 알아 내려고 노력한 솔루션들 사이에 모두 섞여있다.

누군가가 작동하는 방법을 잘 알고 있고 나에게이 방법을 간략하게 설명 할 수 있다면 그 일을 할 수있는 모든 가능성이 섞여 있기 때문에 매우 좋을 것입니다.

답장을 보내 주셔서 감사합니다.

+0

재생 1 또는 2? 2라면 ORM으로 Ebean을 사용하고 있습니까? – Carsten

+0

안녕하세요, 저는 2.1 게임과 Ebean 게임을 사용하고 있습니다! – user2524693

답변

0

Comment.java은 포럼 응용 프로그램의 예제에서 사용하는 방법은 oneToMany Post.java입니다. 또한 컨트롤러에서 사용법을 볼 수 있습니다.

예 :

public static Result save(long id) { 
    Form <Comment> filledForm = formComment.bindFromRequest(); 
    if (filledForm.hasErrors()) 
      return badRequest(create.render(Post.find.byId(id), filledForm));  

     Comment comment = filledForm.get(); // get data from form 
     comment.post = Post.find.byId(id); // set the model which is oneToMany to this model 
     comment.author = User.loggedUser(); // set user also one user can write many comments 
     comment.save(); 
     return redirect(routes.Posts.list(Post.find.byId(id).topic.id)); 
} 
+0

고맙다. 나는 이것을 분명히 시도 할 것이다. 실제로 나는 가지고있는 주된 문제는 나의 물건 설문지를 되 찾는 방법이라고 생각한다. 정적 인 방법으로 인해 이미 인스턴스화 된 객체의 속성을 수정할 수 없습니다. 당신의 방법이 효과가있는 것 같습니다! 감사합니다 – user2524693

+0

@ user2524693 재생은 상태없는 프레임 워크이므로 이전에 만든 모델에 대한 참조를 유지하지 말고 ID를 유지 한 다음 다시 ID로 선택하십시오. 그것을 수정하고 싶다면, 컨트롤러에서 그렇게하고 데이터베이스에서 업데이트하고 잊어 버릴 수 있습니다. 이해가 안되면 문제를 자세히 설명하십시오. –

+0

조금 더 파고 있었고 나중에 객체를 동적으로 인스턴스화해야 할 필요가있는 것 같습니다. 내가 잘못하면 저를 그만 두십시오. 그러나 더 이상 null 포인터 문제가 없습니다. @Slow Harry, Question의 목록에 액세스 할 수 없기 때문에 ID로 설문지를 선택할 수 없습니다. 새 항목을 사용하지 않고 클래스의 인스턴스를 만들어 동적으로 내 개체를 인스턴스화 할 수있었습니다. 운영자. 그러나 생성 및 수정 된 객체의 속성을 표시하는 방법을 모르겠습니다 ... – user2524693