আমি কি আছে:
@Entity
public class MyEntity {
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
@JoinColumn(name = "myentiy_id")
private List<Address> addreses;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
@JoinColumn(name = "myentiy_id")
private List<Person> persons;
//....
}
public void handle() {
Session session = createNewSession();
MyEntity entity = (MyEntity) session.get(MyEntity.class, entityId);
proceed(session); // FLUSH, COMMIT, CLOSE session!
Utils.objectToJson(entity); //TROUBLES, because it can't convert to json lazy collections
}
কি একটি সমস্যা:
সমস্যাটি হ'ল অধিবেশন বন্ধ হয়ে যাওয়ার পরে আমি অলস সংগ্রহ করতে পারি না। তবে আমি এগিয়ে চলার পদ্ধতিতে একটি সেশনও বন্ধ করতে পারি না ।
কি একটি সমাধান (মোটা সমাধান):
ক) অধিবেশন বন্ধ হওয়ার আগে হাইবারনেটকে অলস সংগ্রহগুলি টানতে বাধ্য করুন
entity.getAddresses().size();
entity.getPersons().size();
....
খ) @Fetch(FetchMode.SUBSELECT)
টীকাটি ব্যবহার করা সম্ভবত আরও অভিজাত উপায়
প্রশ্ন:
এটি করার জন্য একটি সর্বোত্তম অনুশীলন / সাধারণ উপায় / আরও অভিজাত উপায় কী? মানে আমার বস্তুকে জেএসএনে রূপান্তর করে।