0

私のIssueエンティティは、いくつかのフィールド (id など) を持つ DB テーブルから作成されました。各号には、別の DB テーブルに格納されている記事のリストがフィールドとして含まれています。記事にはint issueIDフィールドがあり、適切な問題にマップするために使用されます (issuesテーブルには対応する列はありません): 最終的に、問題オブジェクトが構築されると、問題 ID が一致するすべての記事をプルするようにします。これにより、課題データと記事のリストを表す JSONArray を含む単一のシリアル化されたオブジェクトを返すことができます。

ただし、この時点では、いくつかのテストを行っているだけです。ダミーの Article オブジェクトをいくつか作成し、それらを article コレクションに追加しています。問題は、Issue オブジェクトで GET 要求をテストすると、返された JSONObject にはデータベースに格納されているフィールド (id など) のみが含まれ、Article コレクションの兆候がないことです。何故ですか?

この質問に答えるには、他にどのようなコードを参照する必要があるかを知ることにも同様に興味があります。Web サービスの作成方法を独学で学び始めたばかりで、まだ幅広い概念に頭を悩ませている段階です。どの可動部分がどの動作に影響を与えるか、そしてどの注釈がどこで必要になるかが、最終的に私がやろうとしていることです。

その場合は、幅広いアドバイスを歓迎します。

@Entity
@Table(name = "issues")
@XmlRootElement
public class Issue implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "id")
    private Integer id;
    ....//other fields 
    @OneToMany(mappedBy = "issueID")
    private Collection<Articles> articlesCollection;

    public Issue() {
    articlesCollection = new ArrayList<Articles>();
    Articles a = new Articles();
    a.setHeadline("butt cheese");
    articlesCollection.add(a);
    Articles b = new Articles();        
    articlesCollection.add(b);
    Articles c = new Articles();        
    articlesCollection.add(c);
            }
4

2 に答える 2

0

Articles クラスにも @XmlType または @XMLRootElement タグがありますか? jaxb のような任意のジェネリック クラスは、 orで注釈が付けられてList<T>いることを期待していますT@XMLType@XMLRootElelemt

于 2013-04-23T06:03:30.213 に答える
0

デフォルトでは、リレーションシップの初期化は遅延しているため、Issueオブジェクトがロードされるとき、articlesCollection使用されない限りフェッチされません。

あなたの場合、同じ状況のようです。

明示的にロードする予定がない場合は、OpenEntityManagerInViewFilterを調べarticlesCollectionてください。を構成している場合、オブジェクトをシリアル化するarticlesCollectionと がロードされますOpenEntityManagerInViewFilter

于 2013-04-23T05:32:08.820 に答える