如何通过Spring中CrudRepository的`findAll()方法在序列化中包含已恢复对象的id?

时间:2014-11-08 16:13:13

标签: java spring spring-boot serialization spring-data-rest

我有以下实体类:

@Entity
public class GameSet {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    private String question;
    .......
}

这是我的存储库:

@Repository
public interface GameSetRepository extends CrudRepository<GameSet, Long> { }

以下是我的财务主任的相关部分:

...
    @RequestMapping(value = "/test/getgamesets", method = RequestMethod.GET)
    public @ResponseBody Collection<GameSet> getGameSets() {
        return Lists.newArrayList(gamesets.findAll());
    }
...

这是服务器响应:

{
    "question": "Choose one of the following, which is wrong.",
    "title1": "MovieA",
    "title2": "MovieB",
    "title3": "MovieC",
    "title4": "MovieD",
    "wrong": 1,
    "explain": "I don't know why this is wrong.",
    "rates": 0,
    "rate": 0
}

除了其他属性之外,我想在请求结果中获取对象的id。

我应该覆盖findAll()方法吗?

感谢您的关注和时间!

1 个答案:

答案 0 :(得分:4)

我只是在上一个链接的Application类中添加以下代码:

@Configuration
public static class RepositoryConfig extends RepositoryRestMvcConfiguration {
    @Override
    protected void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.exposeIdsFor(GameSet.class);
    }
}

它有效!感谢JB Nizet让我看清楚我的问题是什么!