【发布时间】:2014-04-17 12:08:15
【问题描述】:
我有 spring rest 服务项目,我正在使用 JPA hibernate,我在控制器中遇到了一个奇怪的问题。下面是代码sn-p:
控制器:
@RequestMapping(method = RequestMethod.POST, value=PATH_SEPERATOR+ CREATE_OR_UPDATE_EVENT_METHOD, headers = ACCEPT_APPLICATION_JSON, produces = APPLICATION_JSON)
@ResponseStatus(HttpStatus.CREATED)
@ResponseBody
ResponseBean createOrUpdateEvent(@RequestBody Event eventBean)
{
ResponseBean response = new ResponseBean();
try {
String sysId = eventService.createOrUpdateEvent(eventBean);
response.setStatus(OK);
response.setData(sysId);
} catch(Exception ex) {
response = handleException(CREATE_OR_UPDATE_EVENT_METHOD, ex);
return response;
}
return response;
}
Event.java
@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "sysId", scope = Event.class)
@Table(name = "event")
public class Event {
@Column(name = "date_time")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss")
private Date dateTime;
public Date getDateTime() {
return dateTime;
}
public void setDateTime(Date dateTime) {
this.dateTime = dateTime;
}
}
当我在 createOrUpdateEvent 方法中将日期作为 IST 时区中的字符串“2014-04-17T17:15:56”传递给事件 bean 时,控制器将其转换为日期时间为“2014-04-17T22:45”的日期:56" IST 将以前的时间视为 UTC 时间。我不明白这种自动转换的行为。我认为这是因为我接受参数作为 bean,其中 bean 是 JPA 实体。请帮我修复它。
【问题讨论】:
标签: spring hibernate spring-mvc jpa