首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

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

  •  
  •   From313 · 27 天前 · 2656 次点击

    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));
    }
    
    • 主要就是想通过 School_Code 查数据.
    • 调用接口时传的参数也是对的.
    • 数据库里面也有数据.
    • 但总是返回 null
    • 这是为啥...
    44 回复  |  直到 2019-10-22 10:24:16 +08:00
        1
    airfling   27 天前
    acl_accountsRepository 这个你是怎么写的
        2
    airfling   27 天前
    刚看到,你返回的都 null,还问为啥,你方法都没实现好
        3
    From313   27 天前
    @airfling emmm 咋实现...
        4
    Macolor21   27 天前   ♥ 1
    看起来用的是 JPA,把 findBySchool_Code 这个方法去掉,看你继承了哪个 Repository 接口,一般 JPA 都实现了 findBy 字段的方法,不用自己再写一个。不行的话试试在 acl_accounts 的 School_Code 属性上面加个 @Column( value ="数据库字段名")
        5
    airfling   27 天前
    你如果用 spring data jpa 下面这样就可以

    public interface ComponentRepository extends JpaRepository<Component, Long> {

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

    写 java 的话,命名规则不要特立独行
        16
    xiangbudaomingzi   27 天前
    这哪里来的萌新。。。
        17
    sty   27 天前
    School_Code 这什么命名方式
        18
    From313   27 天前
    @chocotan
    @sty
    我是直接把表上定的复制过来的...
        19
    airfling   27 天前   ♥ 1
    我还以为你还有 school 这张表,jpa 是按照你 java 中的字段来的,不是数据库中的
        20
    jsy123392550   27 天前
    大家都撤了吧 我感觉这人在钓鱼
        21
    From313   27 天前
    @airfling 找到原因了...就是命名的事儿...谢谢老哥
        22
    HolmLoh   27 天前
    我怀疑你再炸鱼
        23
    yinft   27 天前   ♥ 1
    @HolmLoh 我感觉就是,然后成功的把我们都炸出来了
        24
    jadehare   27 天前
    别的不说,你这命名真的,真的会被人打死的
        25
    dhairoot   27 天前
    命名规范一下好不好
        26
    FightForFreedom   27 天前
    这钓鱼也钓的太钩直饵咸了吧,不过我还是上钩了
    命名太蛋疼了,@Column 搞一下啊
        27
    oneisall8955   27 天前 via Android
    。。。
        28
    aragakiyuii   27 天前 via Android
    命名最好以驼峰式,对应数据库中下划线形式
        29
    chanchan   27 天前
    这命名看得我想给你一拳
        30
    xaplux   27 天前
    看见大家都在喷你的命名,我就放心了
        31
    Yiki888   27 天前
    楼上加一
        32
    kasper4649   27 天前 via iPhone
    又是驼峰又是下划线???
        33
    codzzb   27 天前
    hhhhhh
        34
    arthas2234   27 天前
    我觉得你应该去学习下代码规范
        35
    luoyikang52066   27 天前 via Android
    老子看你命名,想打死你
        36
    mind3x   27 天前 via Android
    大家好,我是鱼
        37
    DebugTy   27 天前
    看到你这命名,我吐了
        38
    zpm683   27 天前
    因为还没学到家~
        39
    yc8332   27 天前
    大佬。。。你都写了 return null,不返回才怪呢
        41
    LuckyBoyGirl   27 天前
    我的哥
        42
    Drinker   27 天前
    JPA 的持久层不需要实现,是 interface,写出方法即可。
        43
    magiclz233   27 天前
    你 return 了个 null 当然得到的是 null 还有,命名用驼峰,中间加个_看不懂 而且 jpa 不惜要你写实现 直接 findByCode 就出来了
        44
    q4487979711   26 天前
    接口命名小写加下划线,6 啊
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1749 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 35ms · UTC 16:13 · PVG 00:13 · LAX 08:13 · JFK 11:13
    ♥ Do have faith in what you're doing.