2

ビーンのリストをエイリアシングするJersey/Jaxbで受け入れられた回答に従って、アーティクルのコメントリストの周りにラッパークラスを追加しようとしています

public class Article implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    ...
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "ARTICLE_COMMENT",
    joinColumns =
    {
        @JoinColumn(name = "ARTICLE_ID", referencedColumnName = "ID")
    },
    inverseJoinColumns =
    {
        @JoinColumn(name = "COMMENT_ID", referencedColumnName = "ID")
    })
    @XmlElementWrapper(name = "user_comments")
    private List<Comment> comments;

    public Article()
    {
    }
 ...
 }

コメントが

@XmlRootElement
@Entity
public class Comment implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;

    /*
    @ManyToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
    private Collection<Article> articles;
    */
    ...
}

ただし、このエラーを返します

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Klasse enthält zwei Eigenschaften mit demselben Namen "comments"

コレクションをコメントのリストに変更しても、あまり変わりませんでした。誰でも私に何ができるか考えていますか?

4

2 に答える 2

8

勝手な推測ですが、プロパティではなくゲッターに注釈を付けてみてください。

于 2013-10-24T14:21:01.770 に答える
1

または、次のコード行を使用してクラスに注釈を付けます。

@XmlAccessorType(XmlAccessType.FIELD)

XML バインドは、getter または setter メソッドを使用せずに、インスタンス変数を介して行われます。注釈は、非ルート要素にも使用できます。

于 2020-02-13T09:18:22.460 に答える