我有一个具有布尔字段的实体。它的值可能在数据库中为空。
我正在使用spring Cassandra 2.0.1.RELEASE
所以我试图写一个转换器将空值转换为false。
@Table("employee")
public class Employee implements Serializable {
private static final long serialVersionUID = -3723276354723269571L;
@PrimaryKey
private final String id;
@Column
private final Boolean isPermanant;
}
转换器
@Bean
CassandraCustomConversions cassandraCustomConversions() {
List<Converter<?, ?>> converters = new ArrayList<>();
converters.add(new CounterDataReadConverter());
return new CassandraCustomConversions(converters);
}
static class CounterDataReadConverter implements Converter<Boolean, Boolean> {
@Override
public Boolean convert(Boolean source) {
System.out.println(source);
if (source != null) {
return source;
} else {
return false;
}
}
}
我使用cassandra操作查询数据库
Select select = QueryBuilder.select().from("keyspace", "employee");
List<Employee> employees = cassandraOperations.select(select, Employee.class);
System.out.println(employees);
当值为null时,它永远不会到达转换器。如果值为false,则调用转换器。
我错过了什么吗?