Ich habe versucht, eine Spring-Boot-Anwendung zu erstellen. In meiner Anwendung möchte ich einige benutzerdefinierte Methoden hinzufügen, um die Daten zu speichern, anstatt die Standardspeichermethode zu verwenden.Spring Data JPA benutzerdefinierte Methode verursacht PropertyReferenceException
Meine Anwendung Einstiegspunkt ist so etwas wie dieses:
@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);
}
}
ich diese Linie repositoryImplementationPostfix geändert haben sogar Impl aber es hat nicht funktioniert.
Mein CrudRepository
@RepositoryRestResource
public interface TaRepository extends CrudRepository<Ta, Integer> ,TestRepository{
List<Ta> findByName(@Param("name") String name);
}
My Custom Repository:
public interface TestRepository {
public void myCustomMethod(TestDto dto);
}
My Custom Repository Impl
public class TestRepositoryCustomImpl implements TestRepository{
@PersistenceContext
private EntityManager em;
@Override
public void myCustomMethod(TestDto model){
}
HINWEIS:
Wenn ich meine CrudRepostory aus dem erwähnten dies zu ändern:
@RepositoryRestResource
public interface TaRepository extends CrudRepository<Ta, Integer> {
List<Ta> findByName(@Param("name") String name);
}
alles funktioniert. Aber nicht mit der Implementierung der benutzerdefinierten Methode.
Was sagt es? Irgendwelche Fehler? – nurgasemetey
verursacht durch: org.springframework.data.mapping.PropertyReferenceException: Keine Eigenschaft myCustomMethod gefunden für Typ Ta! –
http://stackoverflow.com/questions/20777785/org-springframework-data-mapping-propertyreferenceexception-no-property-catch-f - Dieser Link besagt, dass Sie 'TestRepositoryCustomImpl' in' TaRepositoryCustomImpl' und 'TestRepository' ändern müssen 'TaRepositoryCustom' – nurgasemetey