当前位置: 首页 > 知识库问答 >
问题:

使用CRUD存储库获取结果列表

曹鹏海
2023-03-14

我不熟悉使用CRUD存储库。

我有一个包含三列的数据库表:

course_id,姓名,当然

我想得到一份course\u id name的列表,例如,

SELECT id FROM table WHERE name='charmaine'; 

但是,我不想使用查询,而是使用crud存储库。

我的控制器显示有错误。我可以知道有这个错误吗?

我的控制器

@GetMapping(value = "getting/{name}")
    //@ResponseBody
     public String getting(@PathVariable("name") String name) {
        List<CourseMaster> getIds =  CourseService.findIdByName(Name);   —> error icon here
        return getIds;  —> error icon here
     }

服务

public List<CourseMaster> findIdByName(String Name) {
    return CourseMasterRepo.findByName(Name);
}

存储库

public interface CourseMasterRepo extends CrudRepository<CourseMaster, Long> {
    List<CourseMaster> findByName(String Name);
}

共有2个答案

姜振濂
2023-03-14

如果您的代码是在java Spring中完成的,则必须在hibernate中使用hql语言,即sql查询的接口。

使用lambda表达式的hql查询非常简单和有用。

例如

String hql = "FROM Employee E WHERE E.id = 10"; 
Query query = session.createQuery(hql); 
List results = query.list();
易嘉胜
2023-03-14

您必须在控制器中自动连接服务类。

 @Autowired
 CourseService courseService;

 @GetMapping(value = "getting/{name}")
 public String getting(@PathVariable("name") String name) {
    List<CourseMaster> getIds =  courseService.findIdByName(Name);
    return getIds;
 }
 类似资料:
  • 我想使用以下查询获得结果列表: 我在它的实体类中使用了它,但我得到了异常: 当用户成功登录应用程序时,将获得matricula字段。应该通过CDI在NamedQuery中设置它来查询数据库。matricula字段位于另一个不同于此处映射的表中。 如何设置注入的setsionChave字符串在参数的矩阵,这是XRlzConsolado类类型? 豆子: 有3个实体:XRlz、XRlzConsolado

  • 我试图使用查询特定的产品类型和大小(两个diff表中的列),从以下所有表中获取数据<我无法得到想要的结果,所以一些指导将非常有用。 请在下面找到我迄今为止尝试过的细节。 PK:主键,FK:外键 以下是表结构,下面的表(提到)映射到另一个表。 实体类: 存储库: 我使用了以下查询(一个接一个),基于prod_类型和大小,我需要从所有表中获取数据。 注:尺寸不是表MC\U产品类型的一部分。数据团队已告

  • 我在玩spring数据存储库,有一个关于编写CRUD测试的问题。我针对Hibernate DAO和EJB3实体bean编写了许多CRUD测试,在这些测试中,我创建和实体,将其刷新到数据库中,清除实体管理器,并按ID读回它。实体管理器被清除,因此第一级缓存不会在读取时被击中。 使用spring数据存储库,我找不到一种方法来清除测试使用的底层实体管理器,这样我的读取就不会返回到实际的数据库,使我的测试

  • 我有一个相当大的实体,有许多字段和几个与该实体交互的方法。当两个线程同时从数据库中读取数据时,存在不可重复读取的问题,其中一个线程更改了一个字段并保存了实体,而另一个线程同时读取了旧值的数据并没有更改并保存。我想的第一个解决方案是将事务隔离级别改为可重复读取,但这可能会对我的应用程序的性能产生巨大影响。我只需要在第二个方法中忽略一个字段,但在第一个方法中更改它,所以@transient注释在这里不

  • 问题内容: 我正在编写一个存储过程,需要在该过程中动态构造一个SQL语句以引用传入的表名。 我需要让该SQL语句返回结果,然后可以在整个过程的其余部分中使用它。 我已经尝试过使用临时表和其他所有东西,但是我不断收到一条消息,我需要声明变量等。 例如: 或者… 无论如何,有没有这样做而不使用实际表? 谢谢。 问题答案: 您是否尝试过类似的方法: 您需要确保将nvarchar字符串加N作为前缀,例如。

  • 我有一个数据已经保存在我的数据库基于我的存储库和服务。我想保存另一个数据与邮递员只改变播放器id。但它不是创建一个新的实体数据。它更新现有的实体数据。我的问题是如何更新一个数据由我的服务当它找到一个现有的id。但当它找到一个新的id将保存一个新的数据到数据库。 这是我的回购: 这是我的服务: