1
我目前正試圖用@OneToMany關係實現一個RESTful應用程序。避免與序列化程序無關的遞歸關係(angularjs)
我的實體是球隊和球員(一個球隊,很多球員 - 一名球員只有一個隊)
爲了避免無限遞歸我決定使用返回id的序列化。該序列化程序被添加爲匹配屬性的註釋。
它可以正常工作,當我檢查郵遞員。但是當我嘗試在我的前端展示這些值時,玩家隊伍將以JSON格式顯示(請參閱圖片)。
我怎樣才能id的值更改爲一個簡單的數字?這是一個角度問題嗎?我是新來這個框架,只是複製一個簡單的控制器來查看在NG-重複的結果循環表
這裏是我的實體:
團隊:
@Entity
@Table(name = "TEAMS")
public class Team {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
@Column(name = "TEAMNAME")
private String teamname;
@OneToMany(mappedBy = "team")
private List<Player> players;
//..getter/setter etc..
}
球員:
@Entity
@Table(name = "PLAYERS")
public class Player {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
@Column(name = "NAME")
private String name;
@ManyToOne
@JoinColumn(name = "TEAMID")
@JsonSerialize(using = TeamSerializer.class)
private Team team;
//..getter/setter etc.
串行器:
public class TeamSerializer extends JsonSerializer<Team>{
@Override
public void serialize(Team team, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeStartObject();
jgen.writeNumberField("id", team.getId());
jgen.writeEndObject();
}
}
和app.js項:
app.controller({
PlayerListController: function($scope, Player) {
$scope.players = Player.query();
}
});
,並通過調用它:
<tr ng-repeat="player in players">
<td>{{player.id}}</td>
<td>{{player.name}}</td>
<td>{{player.team}}</td>
</tr>