java - "No se encontraron propiedades para el tipo" combinando repositorios spring-data-neo4j
repository-pattern (1)
Estoy usando spring-data-neo4j
y estoy tratando de combinar repositorios para poder usar los personalizados. Creo que he seguido correctamente las convenciones de nomenclatura especificadas en 20.8.7 Creación de repositorios y otras preguntas de SO como esta .
De todos modos, estoy haciendo algo mal porque estoy recibiendo esto
mensaje de excepción
Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property someCriteria found for type User!
Entidad de usuario
@NodeEntity
public class User {
@GraphId
private Long nodeId;
@Indexed
String mail;
...
}
Repositorios (todos en el mismo paquete)
@Repository
public interface UserRepository extends GraphRepository<User>, UserRepositoryCustom {
User findByMail(String mail);
}
public interface UserRepositoryCustom {
String findBySomeCriteria(String criteria);
}
public class UserRespositoryImpl implements UserRepositoryCustom {
@Override
public String findBySomeCriteria(String criteria) {
return "result";
}
}
servicios
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserRepository userRepository;
}
Configuración Neo4j
<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
...
</bean>
<neo4j:repositories base-package="com.mypackage.api.user.repository"/>
<bean id="userService" class="com.mypackage.api.user.service.UserServiceImpl"/>
En este caso, ha sido solo un estúpido error spelling
.
Necesita cambiar UserRespositoryImpl
por UserRepositoryImpl
(sin '' s '': note UserRe s positoryImpl).
De todos modos, he estado luchando con la combinación de repositorio personalizado en spring-data-neo4j
y creo que puede ser un poco confuso. También creo que hay muy pocos buenos ejemplos en línea ... Entonces, finalmente he decidido crear un proyecto de muestra en GitHub
, con un ejemplo básico que muestra cómo podemos hacer eso.
Espero que ayude a otras personas en el futuro.
Ver en GitHub: neo4jCustomRepository