I'm using dse driver 3.6.8, java 8, spring 3.2.18 I'm trying to set different consistency levels for each table The desired consitency levels are stored in a propoerty file
<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>
I tried this
@Component
@Table(name = "someName",
readConsistency = "${consistency.level.strongReadLevel}",
writeConsistency = "${consistency.level.strongWriteLevel}")
public class MMBaseLoginHistory {
but it didn't work. I know I can set the CL on the mapper which overrides the @Table CL, but I wanted to know at least if it was possible.
I tried multiple variations of this code, with or without @Component by adding a field
@Value("${consistency.level.strongReadLevel}")
private String strongReadLevel;
and then try to reffer to it
@Component
@Table(name = "someName",
readConsistency = strongReadLevel)
public class MMBaseLoginHistory {
none of the previous worked
EDIT: I found this solution, but it doesn't stisfies me at all
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 = "";