gpt4 book ai didi

java - 使用 Spring Data Rest 时公开所有 ID

转载 作者:IT老高 更新时间:2023-10-28 13:50:30 31 4
gpt4 key购买 nike

我想使用 Spring Rest 接口(interface)公开所有 ID。

我知道默认情况下,这样的 ID 不会通过 rest 接口(interface)公开:

    @Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private Long id;

我知道我可以使用它来公开 User 的 ID:

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

但是有没有一种简单的方法来公开所有 ID 而无需在此 configureRepositoryRestConfiguration 方法中手动维护列表?

最佳答案

如果您想公开所有实体类的 id 字段:

import java.util.stream.Collectors;

import javax.persistence.EntityManager;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurerAdapter;

@Configuration
public class MyRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter {

@Autowired
private EntityManager entityManager;

@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.exposeIdsFor(entityManager.getMetamodel().getEntities().stream().map(e -> e.getJavaType()).collect(Collectors.toList()).toArray(new Class[0]));
}

}

关于java - 使用 Spring Data Rest 时公开所有 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30912826/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com