Я новичок в JPA с данными гибернации / Spring, и у меня возникли некоторые проблемы при работе с внешними ключами. У меня есть две таблицы:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String email;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String role;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "job_id", referencedColumnName = "id")
private Job job;
}
@Entity
public class Job{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@OneToMany(
mappedBy = "job",
cascade = CascadeType.PERSIST,
fetch = FetchType.EAGER
)
private Set<User> users = new HashSet<>();
}
Я пытаюсь сохранить одно задание (job.Id) в таблице Users. Но если я пытаюсь выполнить get (repository.getOne (id)) (через ...extends JPARepository<User,Long>
, я получаю следующую ошибку: org.hibernate.LazyInitializationException: could not initialize proxy [backend.entity.User#193] - no Session
Есть ли у кого-нибудь совет, как это исправить? Я много читал о stackoverflow, но не мог найти, как это исправить.