0

私はそれが働いています...ちょっと。Json が出力される場合を除いて、多くの重複コードが出力されます。マーシャリングの方法と関係があると思われます。いずれにせよ、これは私のコードです:

ユーザー.java

@XmlRootElement(name="user")

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

    @XmlElement(required=true)
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    @XmlElement(required=true)
    @Column(name="username", nullable=false)
    private String userName;

    @XmlElement(required=true)
    @Column(name="phoneid", nullable=false)
    private String phoneid;

    @XmlTransient
    @ManyToMany(
        cascade={CascadeType.ALL},
        mappedBy="voters",
        targetEntity=Vote.class,
        fetch=FetchType.EAGER

    )
    private List<Vote> votes = new ArrayList<Vote>();

投票.java

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

    @XmlElement(required=true)
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id", nullable=false)
    private int id;

    @XmlElement(required=true)
    @Column(name="name", nullable=false)
    private String name;

    @XmlElement(required=true)
    @Column(name="max", nullable=false)
    private int max;

    @XmlElement(required=true)
    @Column(name="current", nullable=false)
    private int current;

    @XmlElement(required=true)
    @Column(name="is_simple", nullable=false)
    private int isSimple;

    @XmlTransient
    @ManyToMany(cascade = {CascadeType.ALL}, targetEntity=User.class, fetch=FetchType.EAGER)
    @JoinTable(name = "vote_user",
            joinColumns = {@JoinColumn(name = "vote_id")},
            inverseJoinColumns = {@JoinColumn(name = "user_id")}
    )
    private List<User> voters = new ArrayList<User>();

GetRestfulVote.java

@Path("/votes")
public class GetRestfulVote {
    @EJB
    VoteBeanInterface bean;

    @GET
    @Path("/{userid}")
    @Produces(MediaType.APPLICATION_JSON)
    public List<Vote> getVotesJson(@PathParam("userid") String userId) {
        //Will be getting using the user id to be able to set a flag if the calling user voted in it
        List<Vote> listOfVotes = bean.getVotes();

        return listOfVotes;
    }

}

私のコードから明らかなように、私のクラスVoteUserクラスの間に多対多の関係があります。問題が発生していると思います。しかし、問題は、「json化」プロセスから省略されないようにする方法がわからないことです。Votesさらに重要なことは、所有するクラス リスト ( ) を Json に変換することだけを強制するにはどうすればよいかということです。ヘルプと説明をいただければ幸いです。

4

0 に答える 0