私はそれがtrivalだと思っていますが、自分の論理エラーを認識できません。エンティティの関連するリスト。正しいエンティティではなくヌルでリストを取得する
だから私はしている:
@Entity
@Table(name = "PROJECT"))
@SequenceGenerator(name = "project_seq_generator", allocationSize = 20,
initialValue = 1, sequenceName = "project_seq")
public class Project implements Serializable, Cloneable {
/** The cost centres. */
@OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
@JoinColumn(name = "projectid")
private List<Center> costCentres = new ArrayList<Center>();
...
}
あり、他の変数があるが、この質問
他の側面のための貴重なではありません - Center
、このマップされていません。
ゲッターでcostCentres
を取得しようとすると、null
の値を持つリストが表示されます。
このマッピングに問題はありますか?
通常はプロジェクトを追加できますが、関連するプロジェクトIDを持つデータベースが通常はあります。
もう1つ質問があります。これらを取得する基準を作成することはできますかCenter
?私はそれをフェッチする方法
:
public ProjectDTO getProjectByID(int projectID) {
Project project = null;
try {
project = (Project) session.get(project.class, projectID);
} catch(HibernateException e) {
// blabla
}
return convertToProjectDTO(project);
}
とルート:
public ProjectDTO getProjectByID(int projectID) throws HibernateException {
Transaction tx = null;
Session session = HibernateUtils.getNewSession();
ProjectDTO result = null;
ProjectManager manager = new ProjectManager(session);
try {
tx = session.beginTransaction();
result = manager.getProjectByID(projectID);
tx.commit();
} catch(Exception e) {
// Bla BLa
} finally {
HibernateUtils.conditionalRollback(session);
}
return result;
}
休止状態ではない、にconvertToの問題でした。あなたはフィールドでそれを初期化するので、あなたがNULLでリストを取得し、私のダム
「costCentres」をどのように取得していますか?いくつかのコードを投稿してください! –
Centerエンティティを読み込むときに、hibernateによって生成されるsqlクエリは何ですか? –
'convertToProjectDTO'のコードを含めることができますか? – Naros