“没有找到类型的属性”组合存储库spring-data-neo4j

时间:2015-04-19 00:09:22

标签: java neo4j repository-pattern spring-data-neo4j

我正在使用spring-data-neo4j而我正在尝试合并存储库以便能够使用自定义存储库。我想我已经正确地遵循了20.8.7 Creating repositories中指定的术语惯例和其他SO问题,例如this

无论如何,我做错了,因为我得到了这个

异常消息

Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property someCriteria found for type User!

用户实体

@NodeEntity
public class User {

   @GraphId
   private Long nodeId;
   @Indexed
   String mail;
   ...
}

存储库(全部在同一个包中)

@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";
   }
}

服务

@Service
public class UserServiceImpl implements UserService {
   @Autowired
   UserRepository userRepository;
}

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"/>

1 个答案:

答案 0 :(得分:1)

在这种情况下,它只是一个愚蠢的spelling错误。

UserRespositoryImpl需要更改UserRepositoryImpl(没有&#39; s &#39;:注意UserRe s positoryImpl)。

无论如何,我在spring-data-neo4j中一直在努力使用自定义存储库组合,我认为这可能有点令人困惑。另外我认为网上很少有很好的例子......所以,最后我决定在GitHub上创建一个示例项目,其基本示例展示了我们如何做到这一点。

希望将来帮助其他人。

请参阅GitHub:neo4jCustomRepository