2017-03-23 4 views
1

私は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に次の注釈を追加する必要が

+0

1つの問題は、検索されたオブジェクトを印刷してログに記録しようとすると、問題の原因となったtoStringの循環依存性があることです。アカウントでtoStringを呼び出すと、所有する従業員のtoStringが呼び出され、それを含むすべてのアカウントでtoStringが呼び出されます。これはtoStringを呼び出し、メモリ不足になるまでこのように循環します。また、スタックトレースを提供できますか? – mnewton

答えて

0

類似類似品Account

開示:私はロンボク開発者です。

+0

上記の変更はありません:(。 –

関連する問題