java – Spring Data Cassandra:如何使用复合键查询表?
发布时间:2020-12-15 04:39:13 所属栏目:Java 来源:网络整理
导读:我有以下列族: @Table(value = "request_event")public class RequestEvent { @PrimaryKeyColumn(name = "day_requested",ordinal = 0,type = PrimaryKeyType.PARTITIONED) private LocalDate dayRequested; @PrimaryKeyColumn(name = "date_requested",ord
我有以下列族:
@Table(value = "request_event") public class RequestEvent { @PrimaryKeyColumn(name = "day_requested",ordinal = 0,type = PrimaryKeyType.PARTITIONED) private LocalDate dayRequested; @PrimaryKeyColumn(name = "date_requested",ordinal = 1,type = PrimaryKeyType.CLUSTERED,ordering = Ordering.DESCENDING) private LocalDateTime dateRequested; ... } 由存储库存储和访问: @Repository public interface RequestEventRepository extends CrudRepository<RequestEvent,LocalDateTime> { } 不幸的是,requestEventRepository.findOne(localDate)抛出一个异常,可能是因为它返回了多个结果.我怎样才能解决这个问题?此外,如何检索特定日期的所有结果? 解决方法
您有两个选项来表示Spring Data Cassandra的复合键:
>在域类型中使用@PrimaryKeyColumn(就像你一样). Spring Data存储库接受单个ID类型.因此,不可能只将LocalDateTime声明为id.如果要在域类型中坚持@PrimaryKeyColumn,请使用MapId作为id类型: @Table(value = "request_event") public class RequestEvent { @PrimaryKeyColumn(name = "day_requested",type = PrimaryKeyType.PARTITIONED) private LocalDate dayRequested; @PrimaryKeyColumn(name = "date_requested",ordering = Ordering.DESCENDING) private LocalDateTime dateRequested; } public interface RequestEventRepository extends CrudRepository<RequestEvent,MapId> {} MapId mapId = BasicMapId.id("dayRequested",…).with("dateRequested",…); RequestEvent loaded = eventRepository.findOne(mapId); 如果您决定将主键表示为值对象,则需要稍微调整域类型: @PrimaryKeyClass public class Key implements Serializable { @PrimaryKeyColumn(name = "day_requested",ordering = Ordering.DESCENDING) private LocalDateTime dateRequested; } @Table(value = "request_event") public class RequestEvent { @PrimaryKey private Key key; } public interface RequestEventRepository extends CrudRepository<RequestEvent,Key> {} eventRepository.findOne(new Key(…)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- JAVA解析XML与C#解析XML(DOM,SAS,JDOM,DOM4J)
- 当我用两个分号结束一行时,编译器不会抱怨.为什么?
- java – 如何检查有多少线程等待同步方法解锁
- java – ClassCastException:org.springframework.orm.jpa
- java – 使用Spring配置的Hibernate方言问题
- 返回Java节点中的节点列表父节点可以有多个子节点
- 有没有一些Java库用于将.svg转换为.png或.jpg代码?
- JSP JSTL <sql:transaction>标签:事务处理
- java – 如何在多个应用程序之间共享业务逻辑
- Java多线程常用方法的使用