LocalDateTime не работает должным образом на сервере Websphere - PullRequest
1 голос
/ 22 января 2020

Я реализовал LocalDateTime в java, но когда я запускаю приложение на двух серверах, оно возвращает JSON datetime в виде строки на сервере liberty, а на сервере Websphere datetime возвращается как объект, а не строка. Есть ли решение для этого, у меня есть этот datetime в БД: 2001-11-12 17: 18: 19.123456 . Ниже приведен код:

@Converter(autoApply = true)
public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {

    @Override
    public Timestamp convertToDatabaseColumn(LocalDateTime locDateTime) {
        return locDateTime == null ? null : Timestamp.valueOf(locDateTime);
    }

    @Override
    public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
        return sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime();
    }
}

public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
private static DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");

@Override
public LocalDateTime unmarshal(String string) throws Exception {
    synchronized (FORMATTER) {
        return LocalDateTime.parse(string, FORMATTER);
    }
}

@Override
public String marshal(LocalDateTime localDateTime) throws Exception {
    synchronized (FORMATTER) {
        return localDateTime.format(FORMATTER);
    }
}
}

//Entity looks like this
@Column(name = "date_time")
    @Convert(converter = LocalDateTimeAttributeConverter.class)
    private LocalDateTime startDate;

//The DTO looks like this
@XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
    private LocalDateTime startDate;


//Websphere returns 
startDate: {year: 2001, monthValue: 12, month: "DECEMBER", dayOfMonth: 12, dayOfYear: .., …}

//instead of 
"2001-11-12 17:18:19.123456"

Как это можно исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...