Как мне расширить CassandraRepository в spring-data-cassandra?
Я пробовал так много разных комбинаций, чтобы заставить это работать, в конечном итоге я получил ниже.
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 {
...
}
Теперь все, с чем я столкнулся, это следующее исключение
Вызвано: org.springframework.beans.factory.BeanCreationException: ошибка создания bean-компонента с именем userRepositoryCustom: не удалось вызвать метод инициализации; вложенное исключение - org.springframework.data.mapping.PropertyReferenceException: для типа User не найдено сохранение свойства!