私は@OneToMany
の関係をFabricRoll
とFabricDefect
の間に持っています。Spring Data、JPA @OneToMany Springブートで動作しない遅延読み込み
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "fabric_roll_id", referencedColumnName = "fabric_roll_id")
private Set<FabricDefect> fabricDefects = new HashSet<>();
問題は、私はFabricRoll
JpaRepository
によって機能を得る
でのfindAll()
准FabricDefect
もロードされます。
私はgetFabricDefect()
FabricRollServiceImplクラス
@Component
public class FabricRollServiceImpl implements IFabricRollService{
@Autowired
FabricRollRepository fabricRollRepository;
@Transactional(propagation = Propagation.REQUIRED)
@Override
public List<FabricRoll> getAllFabricRoll() {
FabricRoll fabricRoll1 = new FabricRoll();
fabricRoll1.setBatchNo("34344");
fabricRoll1.setLotNo("425");
fabricRoll1.setPoNo("42");
fabricRoll1.setRollLength(2343);
fabricRoll1.setRollNo("356");
fabricRoll1.setRollWidth(60);
fabricRoll1.setStyleNo("354");
FabricDefect fabricDefect = new FabricDefect();
fabricDefect.setDefectNote("note");
fabricDefect.setDefectPoint(3);
fabricDefect.setSegment(3);
fabricDefect.setYard(42);
Set<FabricDefect> fabricDefects = new HashSet<>();
fabricDefects.add(fabricDefect);
fabricRoll1.setFabricDefects(fabricDefects);
addFabricRoll(fabricRoll1);
FabricRoll fabricRoll = null;
return fabricRollRepository.findAll();
}
@Override
public void addFabricRoll(FabricRoll fabricRoll) {
fabricRollRepository.save(fabricRoll);
}
}
ブレークポイント関数を呼び出すときにのみFabricRoll
とFabricDefect
がロードするロードしたい:
これはOneToManyです。理由はJoinColumnですか? –
'FabricDefect'クラスにあるものを表示します。 – Manza
' @ Transactional'アノテーションを取り除くと 'LazyInitializationException'が返され、コレクションがロードされていないことがわかります。 – Manza