JPA timestamp列和net.sf.json来自查询

时间:2012-10-28 11:41:18

标签: java json jpa

在我的实体类中,我有一个类型为timestamp的列:

@Column(name = "TESTD")
@Temporal(TemporalType.TIMESTAMP)    
private Date test_date;

在我的会话bean中,我正在创建一个返回resultList的select查询,然后我从中创建一个json对象:

Query query = em.createNamedQuery("findAllTest");                                               
List<entityClass> results = query.getResultList();  
JSONSerializer.toJSON((List)results ,jsonConfig);

创建json对象时,我想要格式化timestamp列(而不是作为对象返回)。如何才能做到这一点?如何根据我想要的日期格式转换/格式化时间戳列?这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

我猜你正在使用基于代码示例的json-lib,而我从未使用它,但是the javadoc表明JsonConfig提供了以下方法:

public void registerJsonValueProcessor(Class propertyType,
                                       JsonValueProcessor jsonValueProcessor)

Registers a JsonValueProcessor.
[Java -> JSON] 

所以我猜你可以使用那个方法,并为Calendar.class注册一个处理器,它将使用你想要的格式将Calendar对象转换为String。

答案 1 :(得分:0)

我创建了第二个瞬态getter,它以字符串格式返回日期。这有点像黑客但有效。