46856


Spring Boot入門という書籍のとおりコードを打っているのですが、エラーになり、どうすればいいかわからず困っています。どうかお助けください。

↓ファイルのエラー

[code]

    package com.kuwa.springboot.repositories;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.stereotype.Repository;
    
    import com.kuwa.springboot.MyData;
    
    @Repository 
    public interface MyDataRepository extends JpaRepository<MyData, Long> {
    
        public MyData findById(Long name);
    
    }
    
[/code]

上記の「public MyData findById(Long name);」のMyDataに対して以下のエラー  
”この行に複数マーカーがあります  
- 戻りの型は CrudRepository.findById(Long) と互換性がありません  
- Parameter type (Long) does not match domain class property definition (long).  
- org.springframework.data.repository.CrudRepository.findById   
を実装します”

↓Maven Install時のエラー

[code]

    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building MyBootApp 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ MyBootApp ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [INFO] Copying 5 resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ MyBootApp ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 4 source files to C:\Users\yoshi\Documents\workspace-sts-3.9.2.RELEASE\MyBootApp\target\classes
    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR : 
    [INFO] -------------------------------------------------------------
    [ERROR] /C:/Users/yoshi/Documents/workspace-sts-3.9.2.RELEASE/MyBootApp/src/main/java/com/kuwa/springboot/repositories/MyDataRepository.java:[12,23] com.kuwa.springboot.repositories.MyDataRepositoryのfindById(java.lang.Long)はorg.springframework.data.repository.CrudRepositoryのfindById(ID)と競合します
      戻り値の型com.kuwa.springboot.MyDataはjava.util.Optional<com.kuwa.springboot.MyData>と互換性がありません
    [INFO] 1 error
    [INFO] -------------------------------------------------------------
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 12.430 s
    [INFO] Finished at: 2018-07-22T23:44:37+09:00
    [INFO] Final Memory: 29M/211M
    [INFO] ------------------------------------------------------------------------
    [WARNING] The requested profile "pom.xml" could not be activated because it does not exist.
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project MyBootApp: Compilation failure
    [ERROR] /C:/Users/yoshi/Documents/workspace-sts-3.9.2.RELEASE/MyBootApp/src/main/java/com/kuwa/springboot/repositories/MyDataRepository.java:[12,23] com.kuwa.springboot.repositories.MyDataRepositoryのfindById(java.lang.Long)はorg.springframework.data.repository.CrudRepositoryのfindById(ID)と競合します
    [ERROR] 戻り値の型com.kuwa.springboot.MyDataはjava.util.Optional<com.kuwa.springboot.MyData>と互換性がありません
    [ERROR] -> [Help 1]
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
    
[/code]


CC BY-SA 4.0
2018-07-22T17:26:20.647
46844
2018-07-23T04:26:37.577
23122
question
java spring spring-boot maven
findByIdの競合？？ Spring Boot Maven installエラー


findById methodはCrudRepository
(JpaRepositoryのimplementしているクラス)ですでに定義されており、メソッドシグネチャは以下です。

[code]

    Optional<T> findById(ID var1);
    
[/code]

これに対し、同じ名前で戻り値が違うメソッドを定義したため、エラーとなっています。  
Optionalの戻り値で良い場合はfindByIdメソッドは定義しなくてもいいので、それで試してみてください。


CC BY-SA 4.0
2018-07-23T04:23:59.633
46856
2018-07-23T04:23:59.633
24823
46844
answer