gpt4 book ai didi

java - 如何在 Spring Boot 和 Hibernate 中统计特定 id 的记录

转载 作者:行者123 更新时间:2023-11-30 03:17:05 24 4
gpt4 key购买 nike

我正在开发一个使用 Spring boot 和 hibernate 的项目。我想根据表中的 id 来计算记录数。我可以计算表中的所有记录,但无法根据外键计算记录。

这是我的 Controller 代码

@RequestMapping("/rating/{id}")
@ResponseBody
public long getRatingInfo(@PathVariable("id") long id, HttpServletRequest req, HttpServletResponse res) throws Exception {

long postobj = myDao.count();
return postobj;
}

这里我在url中传递一个id,但是没有count方法来传递这个id来查找记录。

这是我的 Dao 界面

@Transactional
public interface MyDaoInterface extends CrudRepository<Rating, Long>{
}

最佳答案

将其添加到您的 DAO 中:

@Query(countByPostId)
Integer countByPostId(Long post_id);

final String countByPostId= "SELECT COUNT(ra) FROM Rating ra WHERE ra.post_id = ?1"

并以同样的方式调用它:

@RequestMapping("/rating/{id}")
@ResponseBody
public long getRatingInfo(@PathVariable("id") long id, HttpServletRequest req, HttpServletResponse res) throws Exception {

long postobj = myDao.countByPostId(id);
return postobj;
}

编辑:评论中的第二个问题:

@Transactional
public interface MyDaoInterface extends CrudRepository<Rating, Long>{
List<Rating> findByPostId(Long id);
}

和你的来电者:

@RequestMapping("/rating/{id}")
@ResponseBody
public long getRatingInfo(@PathVariable("id") long id, HttpServletRequest req, HttpServletResponse res) throws Exception {

List<Rating> ratings = myDao.findByPostId(id);
long postobj = ratings.size() //use this code where you effectively need the # of entires.

return ratings;
}

关于java - 如何在 Spring Boot 和 Hibernate 中统计特定 id 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32305888/

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