【发布时间】:2021-12-27 19:03:49
【问题描述】:
我将表的主键作为由 3 个字段组成的复合键:id、用户名和电子邮件。我希望能够仅通过用户名或仅通过电子邮件查询用户,而无需了解其他键。
我尝试在存储库中声明一个方法,但它给出了错误No property userKeyUsername found for type User!
这是我的仓库界面:
@Repository
public interface UserRepo extends CassandraRepository<User, UserKey>{
User findByUserKeyEmail(String email);
User findByUserKeyUsername(String username);
}
我有以下类作为我的 User 表的键。
public class UserKey {
@PrimaryKeyColumn(name = "id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private UUID id;
@PrimaryKeyColumn(name = "username", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private String username;
@PrimaryKeyColumn(name = "email", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private String email;
//equals and hashcode
}
这个类作为我的用户模型:
public class User {
@PrimaryKey
private UserKey key;
@Column("first_name")
@CassandraType(type = Name.TEXT)
private String firstName;
@Column("last_name")
@CassandraType(type = Name.TEXT)
private String lastName;
@Column("password")
@CassandraType(type = Name.TEXT)
private String password;
@Column("roles")
@CassandraType(type = Name.LIST, typeArguments = Name.TEXT)
private List<Role> roles = new ArrayList<>();
}
【问题讨论】:
标签: spring-boot cassandra spring-data-cassandra