Spring jhister存储库自定义@Query

Spring jhister存储库自定义@Query,spring,spring-data-jpa,repository,jhipster,spring-repositories,Spring,Spring Data Jpa,Repository,Jhipster,Spring Repositories,我的数据库中有两个表,ProfessorInfo和StudentInfo是一对多关系。我想建立一个自定义查询,根据教授的id,获取与某位教授有关系的所有学生。 比如: @抑制未使用的警告 @存储库 公共界面学生信息库扩展了JpaRepository{ @查询从学生信息中选择*,其中ProfesorID=ProfesorID 列出findAllByProfesorIDLong教授; @Query似乎不起作用。为什么会出现这种情况,我如何才能使它起作用?我认为您没有正确使用Query参数,它应该是这

我的数据库中有两个表,ProfessorInfo和StudentInfo是一对多关系。我想建立一个自定义查询,根据教授的id,获取与某位教授有关系的所有学生。 比如:

@抑制未使用的警告 @存储库 公共界面学生信息库扩展了JpaRepository{ @查询从学生信息中选择*,其中ProfesorID=ProfesorID 列出findAllByProfesorIDLong教授;
@Query似乎不起作用。为什么会出现这种情况,我如何才能使它起作用?

我认为您没有正确使用Query参数,它应该是这样的:

导入org.springframework.data.repository.query.Param; ... @抑制未使用的警告 @存储库 公共界面学生信息库扩展了JpaRepository{ @查询从学生信息s中选择s,其中s.ProfesorID=:ProfesorID 列表findAllByProfesorID@ParamprofesorId长乳突; 冒号告诉JPA下一个单词是一个变量,应该用同名@Param的值替换

假设@Query必须直接在Java对象中导航、加载和筛选实体。我这样说是因为以大写字母“p”开头的字段名ProfesorID看起来很奇怪。如果该字段在Java实体中命名为ProfesorID,那么当您想在jpa查询中访问它时,它的名称应该相同


如果您想了解更多这方面的信息,这是一个很好的示例指南。

我认为您没有正确使用查询参数,它应该如下所示:

导入org.springframework.data.repository.query.Param; ... @抑制未使用的警告 @存储库 公共界面学生信息库扩展了JpaRepository{ @查询从学生信息s中选择s,其中s.ProfesorID=:ProfesorID 列表findAllByProfesorID@ParamprofesorId长乳突; 冒号告诉JPA下一个单词是一个变量,应该用同名@Param的值替换

假设@Query必须直接在Java对象中导航、加载和筛选实体。我这样说是因为以大写字母“p”开头的字段名ProfesorID看起来很奇怪。如果该字段在Java实体中命名为ProfesorID,那么当您想在jpa查询中访问它时,它的名称应该相同


如果您想了解更多有关这方面的信息,这是一个很好的示例指南。

我的印象是,通过使用@Query,我是在直接询问数据库,而不是使用JPA类。因此,我使用的是基本SQL。字段名ProfesorID实际上不存在于我的java实体中,它直接取自StudentInfo表在我的h2数据库中。谢谢你的回答!没问题,你可以直接查询数据库设置nativeQuery=true。更多信息向下滚动到本机查询。我的印象是使用@query直接查询数据库,而不是使用JPA类。因此,我使用的是基本SQL。字段名称ProfesorID实际上不存在于我的java实体中,它直接取自h2数据库中的StudentInfo表。谢谢您的回答!没问题,您可以设置nativeQuery=true直接查询数据库。更多信息向下滚动一点到本机查询。