これは、複雑なクエリを簡略化したものです。
具体的な event-new (渡された既知の idNew を使用) の詳細を取得したいと考えています。
問題は、そのレコードのフィールドを取得したいことを休止状態のSQLエンジンに伝える方法がわからないことです.
最後の句(およびnewsWfLocalFiles.idNewsWfLocal = newsWfLocal.idNewsWfLocal)でconexionを記述する方法がわかりません
Query query = this.sessionFactory.getCurrentSession().createQuery(
"select news.idNews, newsWfLocal.title, newsWf.date, newsWfLocalFiles.url" +
" from News news, NewsWf newsWf, NewsWfLocal newsWfLocal, NewsWfLocalFiles newsWfLocalFiles" +
" where news.idNews = :idNews" +
" and newsWf.news.idNews = news.idNews" +
" and newsWf.idNewsWf = newsWfLocal.idNewsWf" +
" and newsWfLocal.idLocal = 1" +
" and newsWfLocalFiles.idNewsWfLocal = newsWfLocal.idNewsWfLocal");
重要なのは定型文を適切に構築することだと思いますが、その方法がわかりません。
テーブル間の関係は次のとおりです。
ニュース 1 対多 NewsWf
NewsWf 1 対多 NewsWfLocal
NewsWfLocal 1 対 1 NewsWfLocalFiles
次のフォーム句では、解決策に近づいていると感じていますが、フィールドが空ではない場合でも、取得された「localFile」はまだ null です。
from News news join news.newsWfs newsWfs join newsWfs.newsWfsLocal newsWfsLocal left outer join newsWfsLocal.newsWfLocalFiles newsWfLocalFiles
1 対 1 のマッピングの詳細は次のとおりです。
NewsWfLocal.xml内:
<one-to-one name="newsWfLocalFiles" class="com.sample.mdl.NewsWfLocalFiles" fetch="select" lazy="false" ></one-to-one>
NewsWfLocalFiles.xml内:
<one-to-one name="newsWfLocal" class="com.sample.mdl.NewsWfLocal" fetch="select" lazy="false"></one-to-one>