![]() |
1
2
这不起作用,因为你试图更换
这行不通。您只能动态替换“Johnson”部分,而不能替换整个条件。因此真正产生的是
这显然不是WHERE部分的有效条件,因为只有一个文本,但没有要将字段与之比较的列和运算符。
如果你只需要与
在C代码集中
如果需要一次按不同的列甚至多个列动态筛选,请使用筛选。例如,这样(我对您的Hibernate映射文件做了一些假设)
现在在您的代码中,您应该能够做到
如果您还需要更多的动态查询(例如,甚至更改运算符(,)。=,如,>、<、…)或必须逻辑地组合限制(其中lastname=“foo” 或 firstname“=“foobar”)那么现在是时候研究 |
![]() |
2
0
我不熟悉这种HibernateTemplate语法,但您似乎在查询SQL中的原始字段名,而不是别名。试试这个:
或者,也许:
或者,可能:
取决于在将最终SQL查询发送到服务器之前正在进行何种类型的预处理。 |
![]() |
3
0
这是因为:value是查询中的绑定变量;不能简单地用包含任意字符串(将成为查询的一部分)的字符串替换它,只能用实际的 价值 . 在您的例子中,该值是“person.last_name='johnson'”,实际上是一个字符串,而不是布尔值。布尔值应该是 真 或 假 这两种方法对于您试图存档的内容都是相当无用的。 绑定变量或多或少会替换文字,而不是复杂的表达式。 |
![]() |
Nico Pizzo · 子查询上的nhibernate联接 7 年前 |
![]() |
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 7 年前 |
![]() |
Stu · 具有特定类型的字符串外键的NHibernate映射 7 年前 |
![]() |
Zout · 为Hibernate的HiLo算法管理的列生成ID 7 年前 |