次のように BatchEntity エンティティから batchInfoEntityList を取得しようとしています:
@Entity(name = "batch")
public class BatchEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long batchId;
@OneToMany(fetch = FetchType.EAGER, cascade = { CascadeType.REFRESH,
CascadeType.REMOVE }, mappedBy="batchEntity")
@Fetch(FetchMode.SELECT)
private List<BatchInfoEntity> batchInfoEntityList;
}
そして、私の BatchInfoEntity は次のとおりです。
@Entity(name = "batch_info")
public class BatchInfoEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long batchInfoId;
@ManyToOne(optional = false, cascade = { CascadeType.REFRESH }, fetch = FetchType.EAGER, targetEntity = BatchEntity.class)
@JoinColumn(name = "batchId", referencedColumnName = "batchId")
private BatchEntity batchEntity;
}
しかし、batchEntity インスタンスを取得すると、その batchInfoEntityList は空です。なぜそれが起こっているのか理解できません。
私のDAOは
public List<BatchEntity> getA()
throws Exception {
Session session = HibernateUtil.getSessionFactory().openSession();
try {
@SuppressWarnings("unchecked")
List<BatchEntity> batchEntityList = session
.createQuery(
"select b from "
+ BatchEntity.class.getName()
+ " b ")
return batchEntityList;
} finally {
session.close();
// session.close();
}
}