如何在spring-data-cassandra中扩展CassandraRepository?
我已经尝试了很多不同的组合来获得这个工作,最终我结束了下面。如何扩展CassandraRepository
User.java
@Table(name = User.TABLE)
public class User {
private static final String TABLE = "user";
@PartitionKey
private UUID id;
@Column
private String name;
// Getter setter methods
...
}
CassandraRepositoryCustom.java
@NoRepositoryBean
public interface CassandraRepositoryCustom<T> extends CassandraRepository<T> {
public T save(T t, Options options);
}
CassandraRepositoryImpl.java
public class CassandraRepositoryImpl<T>
extends SimpleCassandraRepository<T, MapId>
implements CassandraRepositoryCustom<T> {
public CassandraRepositoryImpl(CassandraEntityInformation<T, MapId> metadata,
CassandraOperations operations) {
super(metadata, operations);
}
@Override
public T save(T t, Options options) {
...
}
}
UserRepositoryCustom.java
public interface UserRepositoryCustom extends CassandraRepositoryCustom<User> {
User findById(UUID id);
}
UserRepositoryImpl.java
public class UserRepositoryImpl
extends CassandraRepositoryImpl<User>
implements CassandraRepositoryCustom<User> {
public UserRepositoryImpl(CassandraEntityInformation<T, MapId> metadata,
CassandraOperations operations) {
super(metadata, operations);
}
}
UserDao.java
@Component
public class UserDao {
@Autowired
private UserRepositoryCustom repo;
public save(User user, Options options) {
repo.save(user, options);
}
public getUser(UUID id) {
repo.findById(id);
}
}
CassandraConfig.java
@Configuration
@EnableCassandraRepositories(repositoryBaseClass = CassandraRepositoryImpl.class)
public class CassandraConfig {
...
}
现在所有我遇到的是以下情况例外
原因d通过:org.springframework.beans.factory.BeanCreationException:创建名为'userRepositoryCustom'的bean时出错:init方法的调用失败;嵌套的异常是org.springframework.data.mapping.PropertyReferenceException:未找到类型为User的属性保存!
谢谢,但我仍然运行到的问题。 – kalypzo
请提供可复制的测试用例(Github Repo或Gist)。 – mp911de
得到你,我会提供一个,并在这里更新问题 – kalypzo