Spring Cassandra Converter将null Boolean对象变为false

时间:2018-04-13 07:21:59

标签: spring cassandra spring-data spring-data-cassandra

我有一个具有布尔字段的实体。它的值可能在数据库中为空。

我正在使用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,则调用转换器。

我错过了什么吗?

0 个答案:

没有答案