[请教]学 Java 学的美滋滋,但是 findBy 方法为啥总返回 null....

2019-10-21 10:40:07 +08:00
 From313

Repository 是这么写的:

public default List<acl_accounts> findBySchool_Code(Integer School_Code) {
        return null;
    }

Controller 是这么写的:

@Autowired
private acl_accountsRepository repository;

@GetMapping("/detail")
public Result getDetail(@RequestParam("School_Code") Integer School_Code) {
    return ResultUtil.success(repository.findBySchool_Code(School_Code));
}
4664 次点击
所在节点    程序员
44 条回复
airfling
2019-10-21 10:41:25 +08:00
acl_accountsRepository 这个你是怎么写的
airfling
2019-10-21 10:42:12 +08:00
刚看到,你返回的都 null,还问为啥,你方法都没实现好
From313
2019-10-21 10:43:23 +08:00
@airfling emmm 咋实现...
Macolor21
2019-10-21 10:48:04 +08:00
看起来用的是 JPA,把 findBySchool_Code 这个方法去掉,看你继承了哪个 Repository 接口,一般 JPA 都实现了 findBy 字段的方法,不用自己再写一个。不行的话试试在 acl_accounts 的 School_Code 属性上面加个 @Column( value ="数据库字段名")
airfling
2019-10-21 10:48:05 +08:00
你如果用 spring data jpa 下面这样就可以

public interface ComponentRepository extends JpaRepository<Component, Long> {

List<Component> findBySchool_Code(String School_Code);
}
airfling
2019-10-21 10:49:36 +08:00
spring data jpa 的接口没必要用 default 关键词去自己实现
msg7086
2019-10-21 10:55:02 +08:00
返回 null 的原因难道不是你代码第二行返回了 null 吗……
telami
2019-10-21 10:59:49 +08:00
。。。。。。
Leiothrix
2019-10-21 11:03:28 +08:00
我佛了
jrtzxh020
2019-10-21 11:05:17 +08:00
return null 自己写的都看不懂。。。
haloha
2019-10-21 11:06:17 +08:00
你自己 return null 了啊...
vwym
2019-10-21 11:07:15 +08:00
JPA 接口不用自己实现,继承 JpaRepository 会自动实现的。
参考 5 楼的写法就行。
From313
2019-10-21 11:07:59 +08:00
@msg7086 主要我不写这个的话就报错了...

@airfling 我这边不写 default return null 啥的就报错...


Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'acl_accountsController': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'acl_accountsRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.xxx.trynetwork.repository.acl_accountsRepository.findBySchool_Code(java.lang.Integer)! No property school found for type acl_accounts!
TMDlw
2019-10-21 11:08:14 +08:00
给👴整笑了
chocotan
2019-10-21 11:10:06 +08:00
看报错信息,下划线的问题吧
findBySchoolCode

写 java 的话,命名规则不要特立独行
xiangbudaomingzi
2019-10-21 11:12:00 +08:00
这哪里来的萌新。。。
sty
2019-10-21 11:13:11 +08:00
School_Code 这什么命名方式
From313
2019-10-21 11:17:49 +08:00
@chocotan
@sty
我是直接把表上定的复制过来的...
airfling
2019-10-21 11:19:40 +08:00
我还以为你还有 school 这张表,jpa 是按照你 java 中的字段来的,不是数据库中的
jsy123392550
2019-10-21 11:19:54 +08:00
大家都撤了吧 我感觉这人在钓鱼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/611280

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX