Hibernate: добавляя свойство date в базу данных mysql, оно вставляется в базу данных, как и в предыдущий день - PullRequest
0 голосов
/ 26 апреля 2018

Таким образом, дата, которую я вставляю (которая находится внутри другого объекта), 2018/04/26, проанализирована с помощью String. Прежде чем сохранить ее с помощью отладки, я вижу, что она правильная, но когда я запрашиваю ее из базы данных, отображается как 2018/04/25. Есть идеи, что здесь происходит? База данных Amazon Web Services MySql RDS

Это мой класс расписания, внутри него есть список DateActiveScheduleItems, который содержит свойство даты. Я инициализирую дату следующим образом

**Date date1=  new SimpleDateFormat("yyyy/MM/dd").parse(suppliedString)**

Расписание

@Entity
public class Schedule {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(name = "user_id")
private User user;

@ManyToOne
@JoinColumn(name = "usergroup_id")
private UserGroup userGroup;

private String description;


private boolean master;//is this a schedule for all supervalus(true) or one supervalu(false)

@OneToMany(mappedBy = "schedule",cascade = CascadeType.ALL)
private List<DateActiveScheduleItem> dateActiveScheduleItems = new ArrayList<>();

@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<MusicScheduleItem> musicScheduleItems = new ArrayList<>();

@OneToMany(mappedBy = "schedule",cascade = CascadeType.PERSIST)
private List<AdvertisementScheduleItem> advertisementScheduleItems = new ArrayList<>();

@Basic
@Temporal(TemporalType.DATE)
private java.util.Date dateAdded;}

DateActiveScheduleItem

@Entity
public class DateActiveScheduleItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Basic
@Temporal(TemporalType.DATE)
private Date date;



@JsonIgnore
@ManyToOne
@JoinColumn(name = "schedule_id")
private Schedule schedule;}

Я сохраняю объект с помощью метода .save () из hibernate CrudRepository.

Как ни странно, свойство «дата добавления» в моем расписании, которое я установил как «сейчас», вставляется правильно, что я инициализирую немного иначе. Может быть, я мог бы попытаться инициализировать мою дату для dateactiveitem таким образом, но не уверен, как?

        Calendar now = Calendar.getInstance();
    schedule.setDateAdded(now.getTime());

1 Ответ

0 голосов
/ 26 апреля 2018

может быть часовой пояс сервера? Проверь ниже ветку - у него была такая же проблема.

Joda Time - Hibernate вставляет вчерашнюю дату в базу данных

...