私はセットを別のオブジェクトの中に入れようとしています。 例:Hibernate〜RESTfulはオブジェクトのセットを返します
私はフォーラムのリストを返信していますが、フォーラムにはスレッドが含まれています。私は、関数を呼び出すとき、私はそれらのスレッドを取得するにはどうすればよい:
@GET
@Produces({MediaType.APPLICATION_JSON})
public Response findAll() {
List<Forum> forums = new ArrayList<>();
Forum forum = new Forum();
WebAccount account = new WebAccount("", "", "", Gender.MALE, Long.MAX_VALUE);
forum.setAccount(account);
List<ForumThread> threads = new ArrayList<>();
ForumThread thread = new ForumThread();
thread.setAccount(account);
thread.setId(1);
thread.setName("sweg");
thread.setDescription("LOLOL");
forum.setThreads(threads);
forum.setId(1);
Forum forum1 = new Forum();
WebAccount account1 = new WebAccount("", "", "", Gender.MALE, Long.MAX_VALUE);
forum1.setAccount(account1);
forum1.setId(2);
forums.add(forum);
forums.add(forum1);
GenericEntity<List<Forum>> entity = new GenericEntity<List<Forum>>(forums) {};
return Response.ok(entity).build();
}
私は二つのことを知っていただきたいと思います:
- がすべてのスレッドだけでID番号を取得します。
- すべての単一スレッドのスレッド情報全体を取得します。
フォーラムクラス:私はすべてのスレッドを取得していない午前理由
@Entity
@NamedQueries({})
@XmlRootElement
@Table(name="Website_Forum")
public class Forum implements Serializable {
@Id
@Column(unique = true, nullable = false, length = 16)
@TableGenerator(name = "ForumSEQ", allocationSize = 1, initialValue = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "ForumSEQ")
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "webaccount_id")
private WebAccount account;
@Column(unique = true, nullable = false, length = 64)
private String name;
@Column(unique = false, nullable = false, length = 1024)
private String description;
@OneToMany(cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "Website_ForumThreads",
joinColumns = @JoinColumn(name = "forum_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "thread_id", referencedColumnName = "id"))
private List<ForumThread> threads;
public Forum() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public WebAccount getAccount() {
return account;
}
public void setAccount(WebAccount account) {
this.account = account;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<ForumThread> getThreads() {
return threads;
}
public void setThreads(List<ForumThread> threads) {
this.threads = threads;
}
}
誰かが私に説明してもらえますか? 私は関数を呼び出すとき、これは私のJSON出力です:
[
{
"account": {
"dateOfBirth": 9223372036854775807,
"email": "",
"gender": "MALE",
"helpId": "9c5ee012-4c35-4c6c-be0f-aa8b383642a5",
"helpType": "ACCOUNT_CREATE",
"information": "A new account!",
"isBanned": false,
"password": "",
"permissionGroup": "REGULAR",
"profilePicture": "/Media/ProfilePictures/default.png",
"username": ""
},
"id": 1,
"threads": []
},
{
"account": {
"dateOfBirth": 9223372036854775807,
"email": "",
"gender": "MALE",
"helpId": "590b8ccb-5c96-4044-8e58-424f5d5287c6",
"helpType": "ACCOUNT_CREATE",
"information": "A new account!",
"isBanned": false,
"password": "",
"permissionGroup": "REGULAR",
"profilePicture": "/Media/ProfilePictures/default.png",
"username": ""
},
"id": 2
}
]
クラスを表示してください。 – Jens
フォーラムクラス全体を見ることができます。 – runefist
'threads.add(thread)'の呼び出しが表示されないので、リストは空です。 –