Spring Data JPA自定义方法导致PropertyReferenceException

时间:2016-09-21 15:34:50

标签: spring spring-mvc spring-boot spring-data spring-data-jpa

我一直在尝试创建一个spring boot应用程序。在我的应用程序中,我想添加一些自定义方法来保存数据,而不是使用默认的保存方法。

我的应用程序入口点是这样的:

@Configuration
@ComponentScan
@EnableJpaRepositories(repositoryImplementationPostfix = "CustomImpl")
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration
@PropertySource("application.properties")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);         
    }

}

我已将此行repositoryImplementationPostfix更改为甚至Impl但是,它不起作用。

我的CrudRepository

@RepositoryRestResource
public interface TaRepository extends CrudRepository<Ta, Integer> ,TestRepository{


    List<Ta> findByName(@Param("name") String name);

}

我的自定义存储库:

public interface TestRepository {
    public void myCustomMethod(TestDto dto);
}

我的自定义存储库Impl

public class TestRepositoryCustomImpl implements TestRepository{

    @PersistenceContext
    private EntityManager em;
    @Override
    public void myCustomMethod(TestDto model){
}

注意:

如果我将CrudRepostory从提到的更改为:

 @RepositoryRestResource
    public interface TaRepository extends CrudRepository<Ta, Integer> {


        List<Ta> findByName(@Param("name") String name);

    }
一切正常。但不是自定义方法实现。

1 个答案:

答案 0 :(得分:0)

对于Spring Data JPA @Repository@RepositoryRestResource,您永远不需要实现自定义接口。对于任何简单的查询,您可以创建任何类型的方法,请按照简单的指南。

http://docs.spring.io/spring-data/jpa/docs/1.4.1.RELEASE/reference/html/jpa.repositories.html

对于复杂查询,您可以使用JpaSpecificationExecutor。

How can I create a Predicate from a HQL query?