Как сравнить даты с JPA, когда база данных имеет другой формат, чем java. sql .Date - PullRequest
0 голосов
/ 02 марта 2020

Надеюсь, у вас все хорошо.

Сейчас я работаю над проектом в JAVA, в котором используются Spring Framework и Репозитории JPA .

Как обычно, я пытаюсь получить информацию из таблицы, используя следующий JPA метод:

Optional<Car> = findByNameAndModelDtIsLessThanEqual(String name, Java.sql.Date modelDt);

Если сущность Автомобиль имеет следующее определение:

@Entity
@Table(name = "car")
public class Car{

    @Id
    @Column(name = "car_id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer carId;

    @Column(name = "name")
    private String name;

    @Column(name = "model_dt")
    private Date modelDt;

        //Getters and Setters
}

, когда я отлаживаю код, аргумент в методе:

name: "VW"
modelDT: '2020-03-02'

Однако JPA запрос не работает, потому что в базе данных появляется поле model_dt с форматом "dd-MON-yy" ("02-MAR-20" ) и java.sql.Date имеет другой формат ( "гггг-мм-дд" ).

Я попытался заменить java.sql.Date modelDt по String modelDt в хранилище определений (с намерением использовать SimpleDateFormat класс), однако, это не сработало таким образом.

I хотел бы знать, если есть один способ pare Dates от JPA (я бы хотел избежать использования JPQL).

Кто-нибудь знает, как я могу решить эту проблему.

С уважением.

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