【发布时间】:2021-10-16 15:29:15
【问题描述】:
我正在使用 dse 驱动程序 3.6.8、java 8、spring 3.2.18 我正在尝试为每个表设置不同的一致性级别 所需的一致性级别存储在属性文件中
<entry key="consistency.level.strongWriteLevel">EACH_QUORUM</entry>
<entry key="consistency.level.strongReadLevel">LOCAL_QUORUM</entry>
<entry key="consistency.level.lightWriteLevel">TWO</entry>
<entry key="consistency.level.lightReadLevel">ONE</entry>
我试过了
@Component
@Table(name = "someName",
readConsistency = "${consistency.level.strongReadLevel}",
writeConsistency = "${consistency.level.strongWriteLevel}")
public class MMBaseLoginHistory {
但它没有用。 我知道我可以在覆盖@Table CL 的映射器上设置 CL,但我至少想知道它是否可能。
我尝试了这段代码的多种变体,有或没有@Component 通过添加字段
@Value("${consistency.level.strongReadLevel}")
private String strongReadLevel;
然后尝试引用它
@Component
@Table(name = "someName",
readConsistency = strongReadLevel)
public class MMBaseLoginHistory {
以前的都没有用
编辑: 我找到了这个解决方案,但它一点也不让我满意
import static com.cardlinkin.mm.model.beans.MMBaseLoginHistory.writeConsistencyLevel;
import static com.cardlinkin.mm.model.beans.MMBaseLoginHistory.readConsistencyLevel;
@Component
@Table(name = "someName",
writeConsistency = writeConsistencyLevel,
readConsistency = readConsistencyLevel)
public class MMBaseLoginHistory {
@Value("${consistency.level.strongWriteLevel}")
public static final String writeConsistencyLevel = "";
@Value("${consistency.level.strongReadLevel}")
public static final String readConsistencyLevel = "";
【问题讨论】:
标签: cassandra datastax-java-driver