Retrieve from DB entity with LocalDate

I have a class with field LocalDate which I’d like to persist.

public class Employee {
private Long id;    
private LocalDate issueDate;
// ... ///
// getters and setters

When I tried to get an object from database by executing

Employee Employee = em.find(Employee.class, 1L)

I get an exception:

org.eclipse.persistence.exceptions.ConversionException /..../
could not be converted to [class java.time.LocalDate

Then I followed that tutorial and wrote converter between LocalDate and String. It works, but using EclipseLink and MariaDB I can only persist date in such a way: “yyyy-MM-dd”. That way I cannot store hours, minutes and seconds. EclipseLink gives the following exception: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: HourOfDay. How do I store more precise time?

My converter:

@Converter(autoApply = true)
public class LocalDateConverter implements AttributeConverter<LocalDate, String> {

    private static final DateTimeFormatter formatter = new DateTimeFormatterBuilder()

    public String convertToDatabaseColumn(LocalDate locDate) {
        return (locDate == null ? null : locDate.format(formatter));

    public LocalDate convertToEntityAttribute(String sqlDate) {
        return (sqlDate == null ? null : LocalDate.parse(sqlDate, formatter));


i can see you have an error in your code, since LocalDate have no parameters of time so you got that exception.

to fix your issue you should make those changes to your code in DateTimeFormatter

 private static final DateTimeFormatter formatter = new DateTimeFormatterBuilder()

make sure there are no time attr in the DateTimeFormatter

Leave a Reply

Your email address will not be published. Required fields are marked *