拥有此实体
@Table(keyspace = KEYSPACE)
public class CE_TimeSeries extends Entity implements TimeSeriesPoint{
@PartitionKey(1)
private String typeId;
@ClusteringColumn(value=1, asc=true)
private String userId;
@ClusteringColumn(value=2, asc=true)
private Date startDate;
@Column
private Date endDate;
@Column
private int groupInterval;
@Column
private int interval;
}
这个CQL
SELECT startDate, endDate, groupInterval, interval FROM CE_TimeSeries WHERE typeId
= :typeId and userId = :userId and ( endDate >= :fromDate or ( startDate >=
:fromDate and startDate <= :toDate ) )
给出例外:
Caused by: com.datastax.driver.core.exceptions.SyntaxError: line 1:142
mismatched input 'or' expecting ')' (... ( endDate >= :fromDate [or] (...)
答案 0 :(得分:3)
虽然我实际上并没有在这里看到问题,但我会假设您在想为什么会遇到异常。您的查询有两个问题。
OR
。OR
可用的类型可以排除对parens的需求。最重要的是,CQL不是SQL,您可以在WHERE子句中应用的逻辑在很大程度上取决于存储模型。