私は2エンティティclasses.Employeeを持っており、例外JPAからデータを読みながら - org.hibernate.LazyInitializationException
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@DynamicUpdate
@DynamicInsert
@Table(name = "employee", schema = "org")
public class Employee {
@Id
@Column(name = "emp_id")
private String empId;
@Column(name = "emp_name")
private String empName;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "employee")
private Set<Account> accounts;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@DynamicUpdate
@DynamicInsert
@Table(name = "account", schema = "org")
public class Account {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "acct_id")
private Integer accountId;
@Column(name = "acct_nbr")
private String accountNumber;
@ManyToOne
@JoinColumn(name = "emp_id", nullable = false)
private Employee employee;
}
アカウントは、私が「私が取得しかし、従業員の行を検索すると、データベースにデータを保存することができていますメソッドが 'org.hibernate.LazyInitializationException'例外をスローしました。Employee.toString() "を評価できませんでした。従業員オブジェクト(アカウント)のコレクションについては、" メソッドを評価できませんでした。org.hibernate.LazyInitializationException例外。 "
私はOnetoManyのためにFetchType.EAGERを試しましたが、luckok @Data(toString())が問題を引き起こしているかどうかは不明です。
PS:JPA CrudRepositoryを使用して、DBからデータを保存および取得します。
助けてください。
@ToString(exclude="accounts")
また、私はあなたがベースに自分のIDに基づいて、両方のエンティティの平等を追加したいと思います:
@EqualsAndHashCode(of="emp_id")
そして何かあなたはおそらくEmployee
に次の注釈を追加する必要が
1つの問題は、検索されたオブジェクトを印刷してログに記録しようとすると、問題の原因となったtoStringの循環依存性があることです。アカウントでtoStringを呼び出すと、所有する従業員のtoStringが呼び出され、それを含むすべてのアカウントでtoStringが呼び出されます。これはtoStringを呼び出し、メモリ不足になるまでこのように循環します。また、スタックトレースを提供できますか? – mnewton