Есть две сущности:
public class TimeOfSessionEntity {
@Id
@Column(name = "timeOfSessionId")
private Long timeOfSessionId;
@Column(name = "timeOfSession")
private Timestamp timeOfSessionDate;
private Long movieId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "dateOfSessionId")
private DateOfSessionEntity dateOfSession;
}
И
public class DateOfSessionEntity {
@Id
@Column(name = "dateOfSessionId")
private Long dateOfSessionId;
@Column(name = "dateOfSessionTime")
private Timestamp dateOfSession;
@OneToMany(mappedBy = "dateOfSession", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<TimeOfSessionEntity> timeOfSession = new HashSet<>();
}
Когда я сохраняю в бд сущность TimeOfSessionEntity,то автоматически запись ссылается на таблицу DateOfSessionEntity с id=0. т.е. я хочу вначале создать запись в TimeOfSessionEntity, а потом уже выбрать на какой id ссылаться в DateOfSessionEntity. что я делаю не так? при сохранении TimeOfSessionEntity внешний ключ не указываю.
Значение id обычно генерится в Hibernate. Надо бы поставить аннотацию @GeneratedValue.
Более подробно можно почитать про эту аннотацию здесь.
Значение внешнего ключа устанавливается если вы сохраняет оба объекта, или же поочередно, тогда зависимый объект берётся из сессии.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей