2016-12-12 2 views
0

Имея объект как:Spring Data не вызывает поглотитель с настраиваемым свойством

@Entity 
public class Player { 

    @Id 
    @GeneratedValue(strategy= GenerationType.AUTO) 
    private long id; 
    private String userName; 

    @OneToMany(mappedBy="player", fetch=FetchType.EAGER) 
    private Set<Participation> participations; 

    public long getId() { 
     return id; 
    } 

    public String getUserName() { 
     return userName; 
    } 

    public Set<Participation> getParticipations() { 
     return participations; 
    } 
} 

Когда я получить доступ к URL http://localhost:8080/rest/players/1 с помощью отладчика я могу видеть, как GetUserName называется (по сериализатору я думаю). getId и getParticipations не вызываются.

Такое поведение подходит ко мне, я имею в виду, это просто любопытство, почему эти геттеры не называются?

ответ

1

Ассоциированные лица подвергаются воздействию связей с отрицательными значениями в весенних данных, если тип ассоциации не связан с репозиторием.

Они доступны под ресурсом HAL «_links». (ссылка spring data-rest projections & excerpts).

Идентификаторы объектов также пропускаются (по умолчанию), так как вы можете найти идентификатор в соответствующей строке .

Для обнажая ид вам просто нужно настроить RepositoryRestConfigurerAdapter выставить идентификаторы с помощью:

@Configuration 
public class DataRestConfiguration extends RepositoryRestConfigurerAdapter { 

    @Override 
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
     config.exposeIdsFor(Entity.class); 
    } 
} 
Смежные вопросы