Руководство по гибернации говорит следующее:
String sql = "SELECT ID as {c.id}, NAME as {c.name}," +
"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother.*} " +
"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID";
Список loggedCats = sess.createSQLQuery (sql)
.addEntity("cat", Cat.class)
.addEntity("mother", Cat.class).list()
Теперь то, что у меня есть, в основном то же самое.Я возвращаю два одинаковых типа в строке.Я делаю что-то вроде этого:
SELECT {ctrl1.*}, {ctrl2.*} FROM tableA AS A
LEFT JOIN tableB AS ctrl1 ON (A.controlID = ctrl1.controlID AND ctrl1.controlOptionType = ? AND ctrl1.controlOptionValue = ?)
LEFT JOIN tableB AS ctrl2 ON (A.controlID = ctrl2.controlID AND ctrl2.controlOptionType = ? AND ctrl2.controlOptionValue = ?)
А потом я addEntity("ctrl1", typeof(mycontrolclass)
и addEntity("ctrl1", typeof(mycontrolclass)
, что мне кажется точно таким же, как их пример.Но я получаю это исключение: «Не удалось выполнить запрос», а внутреннее исключение - «Не удалось найти указанный столбец в результатах».Если я скопирую sql в исключении (к которому он добавил «AS ctrl1_1_3_3_» и т. Д.), Он будет работать нормально.
Спасибо.