我有两个问题。
即。我不能使用类似下面的内容
.add(Projections.sqlProjection("(select count(c.someData)
from EntityName c where c.id= " +
passedID + ") as someDataField",
new String[] { "someDataField" },
new Type[] { IntegerType.INSTANCE }))
但如果我用列名和表名替换它就可以了。像这样,
.add(Projections.sqlProjection("(select count(c.SOME_DATA_COLUMN)
from TABLE_NAME c where c.ID_COLUMN= " +
passedID + ") as someDataField",
new String[] { "someDataField" },
new Type[] { IntegerType.INSTANCE }))
为什么会这样?
我正在尝试从与USERS_TABLE对应的Users实体中检索数据。 我有First_Name和Last_Name列和User_ID,表中的所有Varchar和字段都在实体中。
每个表中的Created_By列引用USERS_TABLE中的User_ID。
现在,我想使用createdBy字段检索名字和姓氏。
我写了一个sqlProjection以及其他投影。它看起来如下。
.add(Projections.sqlProjection(
"(select concat(user.First_Name, ' ', user.Last_Name) from USERS_TABLE user "
+ "where user.User_ID = {alias}.mappedParentEntity.createdBy) as createdBy",
new String[] { "createdBy" },
new Type[] { StringType.INSTANCE }))
{alias}指的是root实体的别名。
我收到错误消息
未知栏' this_.mappedParentEntity.createdBy'在' where子句'
这个解决方案可能是什么?