ループ内でネイティブクエリを実行しようとすると、クエリは正しいSQL構文を表示しますが、出力は常に同じです。ループ内でnativeQueryを実行すると正しいデータが返されない
Hibernate: Select * from translation1
Hibernate: Select * from translation2
Hibernate: Select * from translation3
が、「行」変数は常に、すなわち行translation1テーブルの最初のSELECT文の結果が含まれています
for (int i=0; i<translations.size(); i++) {
Query query = entityManager.createNativeQuery("Select * from " + translations.get(i).getName(), MyModel.class);
rows = (List<MyModel>)query.getResultList();
// rest of the function...
}
は今コンソールに私は次のようにHibernateの文を見ることができます。
コンソールで、他のテーブルからも選択していることを示す理由はありますが、実際には常にtranslation1テーブルからデータを取得しますか?
をください呼び出すことにより、セッションのキャッシュをクリアこれらのテーブルのidフィールドの値は同じですか? – axtavt
他にも 'rows'が使われていることを見ずにこれに答えることは本当に不可能です。たとえば、なぜ 'rows'がforループ内で宣言されていないのですか? –
@axtavtはいすべてのテーブルは、1つの列rowTextを除き、同じIDおよび同じ列名を持ちます。これは、転換表に応じて異なる言語のテキストを含みます。 – Rizwan