0
我有ManyToMany
映射,我映射Car
模型,和Monter
模型,我得到它們保存到數據庫和工作正常,但是當我檢索我的汽車對象時,我不能訪問我的集合,因爲我得到延遲加載錯誤。加載多對多收集同一時間作爲對象本身
這是我的服務默認地將Impl:
@Override
public List<FinishedCar> finishedCarList() {
return finishedCarDao.findAll() ;
}
現在我讀的地方,我可以用fetchType.Eager
,但由於某種原因,這並不在我的情況下工作,所以我發現Hibernate.initialize()
方法,但我不知道如何(或更好)在哪裏使用它?
我應該在我的服務層使用hibernate.initialize()
方法嗎?還是道?以及我將如何加載我的集合而不會導致延遲加載錯誤。此外,這是否意味着在每個對象車的實例我必須使用hibernate.initialize()
我使用car.getMonterMain()
在汽車類中調用我的getter
。
@ManyToMany
@JoinTable(
name="car_worker",
[email protected](name="WORKER_ID", referencedColumnName="ID"),
[email protected](name="CAR_ID", referencedColumnName="ID"))
public List<FinishedCar> getFinishedCar() {
return finishedCar;
}
@ManyToMany
@JoinTable(
name="car_worker",
[email protected](name="CAR_ID", referencedColumnName="ID"),
[email protected](name="WORKER_ID", referencedColumnName="ID"))
@WhereJoinTable(clause = "worker_type = 2")
我更新了我的原始問題與來自我的模型的映射。 問題是如果我添加級聯type.all以多對多的註釋,我得到以下錯誤: org.springframework.dao.InvalidDataAccessApiUsageException:傳遞給persist的分離實體:com.atlas.model.Monter; 如果我不使用級聯,那麼我可以將其保存到數據庫, – ImRaphael