java - Spring中如何通过CrudRepository的 `findAll()`方法在序列化中包含回收对象的id?

标签 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> { }

这是我的 Controller 的相关部分:

...
    @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() 方法吗?

感谢您的关注和时间!

最佳答案

我只是将以下代码添加到上一个链接中的应用程序类中:

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

而且有效!!!感谢 JB Nizet 让我看清了我的问题所在!

关于java - Spring中如何通过CrudRepository的 `findAll()`方法在序列化中包含回收对象的id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819189/

相关文章:

java - 将服务绑定(bind)放在 onStart() 处是否不好?

java - 如果缺少 hibernate 依赖项,方法 org.postgresql.jdbc.PgConnection.createClob() 尚未实现

spring - 启动 Tomcat Web 应用程序时如何捕获 Spring 错误?

java - 我可以在自定义过滤器中使用@Autowired吗

java - JPA 实体解析错误

Java 图像字节数组大小

Spring MVC @RequestParam对象列表

spring - Autowiring 使用 @Component 注释的非托管 Bean

java - 使用 Spring 包装类相对于 Quartz 调度程序库的优势

java - spring boot中如何使用自定义logger记录访问日志