# Entity wirft Nullpointer



## Ice-Tea (30. Dez 2008)

Hallo,

ich hab hier ein kleines Problem und weiß nicht wirklich weiter.
Ich beschäftige mich grade mit  JPA und baue zu diesem zweck ein kleines Forum.

Ich hab 3 eintities, von denen jeweils zwei unidirectional miteinander verbunden sind ( @OneToMany, @ManyToOne)

+Forum
_|
_|-ForumThread
__|
__|-ForumThreadAnswer


Jetzt musste ich wegen einer Exception beim deployen eine der reference-Ids auf nur lesen setzten.

Jetzt versuche ich durch folgende abfrage einen neuen Thread anzulegen:
(ff steht für ForumFacade)

```
if (request.getMethod().equals("POST") && request.getParameter("neuesThema").equals("true")) {

            int forumId = Integer.decode(request.getParameter("forumId"));
            int nextAnswer = ff.findAllBeitraege().size() + 1;
            String themaTitel = request.getParameter("themaTitel");
            String unterTitel = request.getParameter("unterTitel");
            String htmlText = request.getParameter("neuerBeitrag");

            System.out.println("Alle Threads: "+ff.findAllThreads().size());
            System.out.println("Alle Beiträge: "+ff.findAllBeitraege().size());
            System.out.println("Forum-Id: "+forumId);
            System.out.println("Thema-Titel: "+themaTitel);
            System.out.println("HTML-Text: "+htmlText);

            ForumThread f = new ForumThread(
                    ff.findAllThreads().size() + 1,
                    forumId,
                    themaTitel);
            

            //ff.create(f);
            
            ForumThreadAnswers ftw = new ForumThreadAnswers(
            //ff.getBeitraegeVonForumId(new Integer(request.getParameter("neuesThemaInForum")))
            nextAnswer,
            forumId,
            htmlText);
            ftw.setForumThread(f);
            ff.create(ftw);
        }
```

Hier die Menbers der Entities:


```
public class ForumThreadAnswers implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "answer_no", nullable = false)
    private Integer answerNo;
    @Column(name = "BENUTZER_id")
    private Integer bENUTZERid;
    @Column(name = "gast_name", length = 50)
    private String gastName;
    @Basic(optional = false)
    @Column(name = "FORUMTHREAD_id", nullable = false, insertable=false, updatable=false)
    private int fORUMTHREADid;
    @Basic(optional = false)
    @Lob
    @Column(name = "html_text", nullable = false, length = 65535)
    private String htmlText;
    @ManyToOne(cascade=CascadeType.PERSIST)
    private ForumThread forumThread;
...

public class ForumThread implements Serializable {
    private static final long serialVersionUID = 1L;
    @Basic(optional = false)
    @Column(name = "FORUM_id", nullable = false, insertable=false, updatable=false)
    private int fORUMid;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id", nullable = false)
    private Integer id;
    @Basic(optional = false)
    @Column(name = "titel", nullable = false, length = 150)
    private String titel;
    @Column(name = "untertitel", length = 255)
    private String untertitel;
    @ManyToOne
    private Forum forum;
    @OneToMany(mappedBy = "forumThread", cascade=CascadeType.PERSIST)
    private Collection<ForumThreadAnswers> forumThreadAnswers = new ArrayList<ForumThreadAnswers>();
...

public class Forum implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id", nullable = false)
    private Integer id;
    @Basic(optional = false)
    @Column(name = "titel", nullable = false, length = 150)
    private String titel;
    @Column(name = "untertitel", length = 255)
    private String untertitel;
    @Lob
    @Column(name = "beschreibung", length = 65535)
    private String beschreibung;
    
    @OneToMany(mappedBy = "forum")
    private Collection<ForumThread> _forumThread = new ArrayList<ForumThread>();
...
```

Nur leider bekomme ich immer gesagt das forumId null ist, was jedoch nicht sein kann. Ich glaube es hat was damit zu tun, das ich forumId auf nur lesen gesetzt habe.


Mir gefällt das sowieso nicht. Ich hätte es viel lieber andersrum: Ein ForumThread darf ForumThreadAnwsers anlegen

Nur weiß ich nicht wie :?

Wäre nett wenn mir das mal jemand erklären könnte.


----------



## foobar (30. Dez 2008)

Warum gibt es in der Entity ForumThread einen Member forumId, wenn es doch schon einen Member Forum gibt? Also entwoder.


----------



## Ice-Tea (30. Dez 2008)

Danke, jetzt ist mir eine leuchte aufgegangen


----------

