2016-05-11 3 views
2

xmlを以下のクラスを持つスプリングレストコントローラに投稿しようとしています。 XMLはTeamオブジェクトに対して正しくマッピングされていますが、PlayerオブジェクトにはplayerNameがマッピングされていません。 playerNameは常にnullです。誰でも私にここで間違っていることを教えてもらえますか?xmlがjava pojoにマッピングされていません

マイプレイヤーXML POJO

@XmlRootElement 
@Entity(name = "player") 
public class Player { 

    @Id 
    @GeneratedValue 
    @Column(name = "player_id") 
    private long player_id; 

    @Column(unique=true , nullable = false) 
    private String playerName; 

    @ManyToOne 
    @JoinColumn(name = "team_id") 
    private Team team; 

    public long getPlayer_id() { 
     return player_id; 
    } 

    public void setPlayer_id(long player_id) { 
     this.player_id = player_id; 
    } 


    public String getPlayerName() { 
     return playerName; 
    } 

    public void setPlayerName(String playerName) { 
     this.playerName = playerName; 
    } 

    public Team getTeam() { 
     return team; 
    } 

    public void setTeam(Team team) { 
     this.team = team; 
    } 


} 

マイチームのXML POJO

@XmlRootElement 
@Entity(name = "team") 
public class Team { 

    @Id 
    @GeneratedValue 
    @Column(name = "team_id") 
    private long team_id; 

    @Column(unique=true , nullable = false) 
    private String name; 

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "team") 
    private List<Player> players; 

    public long getTeam_id() { 
     return team_id; 
    } 

    public void setTeam_id(long team_id) { 
     this.team_id = team_id; 
    } 


    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public List<Player> getPlayers() { 
     return players; 
    } 

    public void setPlayers(List<Player> players) { 
     this.players = players; 
    } 


} 

マイ春休憩コントローラの方法私は、コントローラに掲示しています

@RequestMapping(value="/team/", method = RequestMethod.POST , headers="Accept=application/xml") 
    @ResponseStatus(value = HttpStatus.OK) 
    public void createTeam(@RequestBody Team team) throws Exception { 
     for (Player player: team.getPlayers()){ 
      player.setTeam(team); 
     } 
     teamService.createTeam(team); 
    } 

私のXML。

<team> 
<name>GUj</name> 
<players> 
    <Player> 
    <playerName>Raina</playerName> 
    </Player> 
</players> 
</team> 

私はプレーヤーxmlでプレーヤ休憩方法を直接呼び出すと、その作業が直接呼び出されます。以下は、create playerとplayer xmlの残りのコードです。それは親のxml pojoにあるchild xml pojoです。私はプレイヤー名を見ることができるで

@RequestMapping(value="/player/", method = RequestMethod.POST , headers="Accept=application/xml") 
    @ResponseStatus(value = HttpStatus.OK) 
    public void createPlayer(@RequestBody Player player) throws Exception { 
     playerService.createPlayer(player); 
    } 

プレーヤーのXML

<player> 
<playerName>Yuvraj</playerName> 
</player> 

アタッチデバッグのスクリーンショットは、あなたが選手リストにXmlElementを定義する必要があり

enter image description here

+0

タグはである必要がありますか? – Jagrut

+0

jacksonObjectMapperを設定しようとしましたか?これはマッピングを処理します。 –

+0

@Jagrut私はそのケースを試みたが違いはなかった。 – OneTwo

答えて

0

nullです。

@XmlElement(name="players") 
public List<Player> getPlayers() { 
    return players; 
} 

+0

で更新Jagrut - これを試しましたが、まだ解決されていません。 – OneTwo

関連する問題