【发布时间】:2010-07-30 02:10:55
【问题描述】:
hibernate 手册是这样说的:
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_”等),它工作正常。
谢谢。
【问题讨论】:
标签: mysql nhibernate hibernate