Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringBootRest忽略一个类_Spring_Spring Boot_Jackson_Spring Data Jpa_Spring Data Rest - Fatal编程技术网

SpringBootRest忽略一个类

SpringBootRest忽略一个类,spring,spring-boot,jackson,spring-data-jpa,spring-data-rest,Spring,Spring Boot,Jackson,Spring Data Jpa,Spring Data Rest,我正在使用SpringBootStarter数据REST开发RESTAPI。我想与JPA同步的一个类是User类,它包含关于用户的信息,包括允许谁访问API 不幸的是,拥有用户和UserRepository意味着我的用户类在API中公开。我能够删除Id(在configureRepositoryRestConfiguration函数中)、用户名和密码(通过向我的用户类的每个变量添加@JsonIgnore) 不幸的是,API的用户仍然可以请求用户表(返回一个包含空用户的列表)。虽然这不是一个真正的问

我正在使用SpringBootStarter数据REST开发RESTAPI。我想与JPA同步的一个类是User类,它包含关于用户的信息,包括允许谁访问API

不幸的是,拥有用户和UserRepository意味着我的用户类在API中公开。我能够删除Id(在configureRepositoryRestConfiguration函数中)、用户名和密码(通过向我的用户类的每个变量添加@JsonIgnore)

不幸的是,API的用户仍然可以请求用户表(返回一个包含空用户的列表)。虽然这不是一个真正的问题,但我宁愿删除/users端点

无法将@JsonIgnore添加到整个用户类中

有这样的事情

您可以使用所需字段定义接口,并将其用作存储库的方法:

@Projection(name = "simpleUser", types = { User.class }) 
interface SimpleUser { 

  String getFirstName(); 

  String getLastName(); 
}
有这样的事情

您可以使用所需字段定义接口,并将其用作存储库的方法:

@Projection(name = "simpleUser", types = { User.class }) 
interface SimpleUser { 

  String getFirstName(); 

  String getLastName(); 
}

通过将此注释添加到存储库中,可以隐藏某些存储库:
@RepositoryRestResource(exported=false)


此处的更多信息:

您可以通过将此注释添加到存储库来隐藏某些存储库:
@RepositoryRestResource(exported=false)


此处的更多信息:

导出存储库取决于。默认策略是:

公开所有公共存储库接口,但考虑@(存储库)RestResource的
导出
标志

根据禁用“回购”的导出,您可以为此回购设置
exported
标志为
false

@RepositoryRestResource(exported = false)
public interface UserRepo extends JpaRepository<User, Integer> {
    //...
}
然后不要将
@RepositoryRestResource
注释应用于不需要导出的repos

更新

我们还可以使用此应用程序属性设置策略:

spring.data.rest.detection-strategy=default

导出存储库取决于。默认策略是:

公开所有公共存储库接口,但考虑@(存储库)RestResource的
导出
标志

根据禁用“回购”的导出,您可以为此回购设置
exported
标志为
false

@RepositoryRestResource(exported = false)
public interface UserRepo extends JpaRepository<User, Integer> {
    //...
}
然后不要将
@RepositoryRestResource
注释应用于不需要导出的repos

更新

我们还可以使用此应用程序属性设置策略:

spring.data.rest.detection-strategy=default

如果您只是从存储库接口中删除@RepositoryRestResource怎么办?从未定义过@RepositoryRestResource,我定义过公共接口UserRepository extends Crudepository{如果您只是从repository接口中删除@RepositoryRestResource怎么办?从未定义过@RepositoryRestResource,我确实定义了公共接口UserRepository extends Crudepository{但这就是spring data rest的重点。它的目的是为您的存储库公开一个restful API,因此没有DTO。有关更多信息,请参阅@systemfreund哦,对不起,我没有注意到spring data Part,但这就是spring data rest的重点。它的目的是为您的存储库公开一个restful API,因此我这意味着没有DTO。有关更多信息,请参阅@systemfreund哦,对不起,我没有注意到spring数据部分