小编jcs*_*ter的帖子

Apache Cassandra 的 Spring Data 将 java.time.LocalDateTime 转换为 UTC

我试图java.time.LocalDateTime在我的 Cassandra 数据库中保留一个对象并使其与时区无关。我正在使用 Spring Data Cassandra 来做到这一点。

问题是,沿着这条线的某个地方,有些东西将这些LocalDateTime对象视为在我的服务器的时区中,并在将它们存储在数据库中时将它们偏移到 UTC 时间。

这是错误还是功能?我可以以某种方式解决它吗?

配置:

@Configuration
@EnableCassandraRepositories(
    basePackages = "my.base.package")
public class CassandraConfig extends AbstractCassandraConfiguration{

    @Override
    protected String getKeyspaceName() {
        return "keyspacename";
    }

    @Bean
    public CassandraClusterFactoryBean cluster() {
        CassandraClusterFactoryBean cluster =
            new CassandraClusterFactoryBean();
        cluster.setContactPoints("127.0.0.1");
        cluster.setPort(9142);
        return cluster;
    }

    @Bean
    public CassandraMappingContext cassandraMapping()
        throws ClassNotFoundException {
        return new BasicCassandraMappingContext();
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望保留的预订记录:

@Table("booking")
public class BookingRecord {
    @PrimaryKeyColumn(
        ordinal = 0,
        type = PrimaryKeyType.PARTITIONED
    )
    private UUID bookingId = null; …
Run Code Online (Sandbox Code Playgroud)

java timezone spring cassandra spring-data-cassandra

4
推荐指数
2
解决办法
6246
查看次数