使用" Spring Boot + Spring Data + Cassandra"创建示例应用程序。配置。
假设存储以下数据
结果查询
cqlsh:keyspaceb> SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY id;
pkey1 | pkey2 | id | name | date | memo
-------+-------+--------------------------------------+----------+--------------------------+----------------
a | b | f56b8ea0-c657-11e6-8db6-27bcd31c20cd | tanaka | 2016-12-13 00:00:00+0000 | greet message1
a | b | f5ed41c0-c657-11e6-8db6-27bcd31c20cd | yamamoto | 2016-12-13 00:00:00+0000 | greet message2
创建Rest Web APP 发出卷曲的结果如下。
$ curl http://localhost:8888/MemoBoxCassandra/api/memobox -i -XGET
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 265 0 265 0 0 1064 0 --:--:-- --:--:-- --:--:-- 1132HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 21 Dec 2016 01:21:43 GMT
[{"pkey1":"a","pkey2":"b","id":"f56b8ea0-c657-11e6-8db6-27bcd31c20cd","name":"tanaka","memo":"greet message1","date":1481587200000},{"pkey1":"a","pkey2":"b","id":"f5ed41c0-c657-11e6-8db6-27bcd31c20cd","name":"yamamoto","memo":"greet message2","date":1481587200000}]
此处,"列"是" date",但我不想要我想要的格式。
在Cassandra方面,它是一个"时间戳"类型。 在Java的实体方面,它是" java.util.Date"类型。 Repository类的获取部分如下。
package com.example.sb.repository;
import java.util.List;
import java.util.UUID;
import org.springframework.data.cassandra.repository.CassandraRepository;
import org.springframework.data.cassandra.repository.Query;
import org.springframework.stereotype.Repository;
import com.example.sb.entity.MemoBox;
@Repository
public interface MemoBoxRepository extends CassandraRepository<MemoBox> {
@Query("SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY id")
List<MemoBox> findAllOrderById();
}
我应该在哪里指定日期格式格式?
答案 0 :(得分:0)
您可以在配置类中使用ObjectMapper定义日期格式。
@Configuration
public class JacksonConfiguration {
@Bean
public ObjectMapper objectMapper() {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z");
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(df);
return mapper;
}
}
以上将影响所有具有Date属性的类,这些类使用jackson进行序列化和反序列化。如果你想要一个特定的类和属性,你可以在你的POJO /实体中使用@JsonFormat,如下所示。
public class Person {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
private Date dateOfBirth;
// other properties
// setters and getters
}