2017-03-09 7 views
3

私はSpring Data Jpaを使用していますが、プロジェクトをデプロイしたときに例外が発生します serviceおよびserviceImplクラスでfindAll()メソッドを使用しましたが、例外:Springデータの型voidでプロパティの削除が見つかりませんJPA

モデル:

@Entity 
@Table(name="CITY") 
public class City { 

    @Id 
    @Column(name="ID", nullable = false, unique = true) 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private int id; 

    @Column(name = "NAME") 
    private String name; 
    // get, set method  
} 

リポジトリクラス:

public interface CityJpaRepositoryCustom extends JpaRepository<City, Integer> { 
} 

サービスクラス:

、これは私の源であります
public interface CityService { 
    public List<City> findAll(); 
} 

ServiceImplクラス:

@Service 
public class CityServiceImpl implements CityService { 

@Resource 
private CityJpaRepositoryCustom cityRepository; 

@Override 
@Transactional 
public List<City> findAll() {  
    // TODO Auto-generated method stub  
    return cityRepository.findAll();   
} 
} 

コントローラクラス:

@Controller 
public class CityController { 

@Autowired 
private CityService cityService;  

@RequestMapping(value="/list", method=RequestMethod.GET) 
public ModelAndView getListCity(HttpServletRequest request, 
              HttpServletResponse response, 
              ModelMap model) {  
    ModelAndView mav = new ModelAndView("manageCity"); 

    List<City> cityList = cityService.findAll(); 
    mav.addObject("cityList", cityList); 

    return mav; 
} 

のpom.xml:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.0.1.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
     <exclusions> 
      <exclusion> 
       <artifactId>hibernate-entitymanager</artifactId> 
       <groupId>org.hibernate</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <!-- SOLR --> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-solr</artifactId> 
     <version>${spring-data-solr.verion}</version> 
    </dependency> 

    <!-- JSON --> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.11</version> 
    </dependency> 

    <!-- WEB --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tomcat.embed</groupId> 
     <artifactId>tomcat-embed-jasper</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <!-- Hibernate 4 dependencies --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-c3p0</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 

</dependencies> 

ログメッセージ:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cityJpaRepositoryCustom': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property delete found for type void! 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) 

私はいくつかの同じトピックを見つけましたが、私にとっては良い結果を得られません。この例外を修正するにはどうすればいいですか?どうもありがとうございます!

+0

。 'CityJpaRepositoryCustom'にカスタム' delete'メソッドを定義しましたか? – manish

+0

こんにちは@manish:私は削除方法を定義していない、ちょうど1つのfillAll()が存在する、私は理由を知らないかもしれないが、おそらくこれは構成によって引き起こされる –

答えて

1

あなたのバージョンのSpring Bootを最新バージョン(1.5.1.RELEASE)にアップグレードしてください。

古いバージョンのSpring Dataを使用していますが、古いバージョンのSpring Dataは削除をサポートしていない可能性があります。

+1

私は再コード化に多くの時間を費やす必要があるしかし、それは働いた、ありがとうポール –

0

削除操作を使用したいが、Spring Data JPAを更新しない場合は、独自の削除実装を作成する必要があります。例:

public interface CityJpaRepositoryCustom extends JpaRepository<City, Integer> { 
    @Modifying 
    @Query("delete from City where name = :name") 
    void deleteByName(@Param("name") String name); 
} 

関連ドキュメント:私は提供されているコードとすべてのエラーを得ることはありません

  1. Using @Query注釈
  2. @Modifying注釈
  3. @Param注釈
関連する問題