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

2019 年 10 月 21 日
 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));
}
5591 次点击
所在节点    程序员
44 条回复
airfling
2019 年 10 月 21 日
acl_accountsRepository 这个你是怎么写的
airfling
2019 年 10 月 21 日
刚看到,你返回的都 null,还问为啥,你方法都没实现好
From313
2019 年 10 月 21 日
@airfling emmm 咋实现...
Macolor21
2019 年 10 月 21 日
看起来用的是 JPA,把 findBySchool_Code 这个方法去掉,看你继承了哪个 Repository 接口,一般 JPA 都实现了 findBy 字段的方法,不用自己再写一个。不行的话试试在 acl_accounts 的 School_Code 属性上面加个 @Column( value ="数据库字段名")
airfling
2019 年 10 月 21 日
你如果用 spring data jpa 下面这样就可以

public interface ComponentRepository extends JpaRepository<Component, Long> {

List<Component> findBySchool_Code(String School_Code);
}
airfling
2019 年 10 月 21 日
spring data jpa 的接口没必要用 default 关键词去自己实现
msg7086
2019 年 10 月 21 日
返回 null 的原因难道不是你代码第二行返回了 null 吗……
telami
2019 年 10 月 21 日
。。。。。。
Leiothrix
2019 年 10 月 21 日
我佛了
jrtzxh020
2019 年 10 月 21 日
return null 自己写的都看不懂。。。
haloha
2019 年 10 月 21 日
你自己 return null 了啊...
vwym
2019 年 10 月 21 日
JPA 接口不用自己实现,继承 JpaRepository 会自动实现的。
参考 5 楼的写法就行。
From313
2019 年 10 月 21 日
@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 日
给👴整笑了
chocotan
2019 年 10 月 21 日
看报错信息,下划线的问题吧
findBySchoolCode

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

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

https://study.congcong.us/t/611280

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

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

© 2021 V2EX