来源:
http://michaelfly.iteye.com/blog/772514
今天在做一个功能的时候
遇到了。一个Could not resolve property 的问题。
配置文件如下:
Java代码
<many-to-one name="user" class="Users" column="StudentExam_user_fid" cascade="all" ></many-to-one>
<many-to-one name="user" class="Users" column="StudentExam_user_fid" cascade="all" ></many-to-one>
查询代码:
Java代码
Criteria crt = session.createCriteria(StudentExam.class).add(Restrictions.eq("exam.id", ExamId)).add(
Restrictions.eq("reading", reading)).add(Restrictions.like("user.truename", name));
return crt.setFirstResult(start).setMaxResults(max).list();
Criteria crt = session.createCriteria(StudentExam.class).add(Restrictions.eq("exam.id", ExamId)).add(
Restrictions.eq("reading", reading)).add(Restrictions.like("user.truename", name));
return crt.setFirstResult(start).setMaxResults(max).list();
在网上找了好久。所有人给的理由都是“对照配置文件以及实体类,是否写错了字段名称”
在我一再的确认下,字段名称没有任何错误……
而且使用user.id是可以进行查询的。除了这个以外。别的都不可以用!
于是开始对配置文件进行修改。尝试了 lazy设置为false 等等。。想对应的修改
Users配置文件的修改。未果
最后,经过各种挣扎。以及Hibernate相关API的查找。最终终于找出解决办法
Java代码
Criteria crt = session.createCriteria(StudentExam.class).add(Restrictions.eq("exam.id", ExamId)).add(
Restrictions.eq("reading", reading)).createCriteria("user").add(Restrictions.like("truename", name));
Criteria crt = session.createCriteria(StudentExam.class).add(Restrictions.eq("exam.id", ExamId)).add(
Restrictions.eq("reading", reading)).createCriteria("user").add(Restrictions.like("truename", name));
对。就是这样写。在使用完StudentExam里的属性后。Java代码
.createCriteria("user")
.createCriteria("user")设置到user实体里。然后再选择属性
注:这里的user是StudentExam类中的名称
具体写法:
public static Criteria setFiltrationParameter(Criteria criteria, Filtration... filtrations)
{
if (filtrations.length > 0)
{
List<Criterion> criterions = new ArrayList<Criterion>();
for (Filtration filtration : filtrations)
{
Criterion criterion = null;
if (!filtration.isMultiFilter())
{
if(filtration.getFieldName().indexOf("-")>1){
String f = filtration.getFieldName();
String[] feilds = filtration.getFieldName().split("-");
criteria.createCriteria(feilds[0]).add(createCriterion(feilds[1], filtration.getFieldValue(), filtration.getMatchType()));
}else{
criterion = createCriterion(filtration.getFieldName(), filtration.getFieldValue(), filtration.getMatchType());
criterions.add(criterion);
}
} else
{
//包含多个属性需要比较的情况,进行or处理.
Disjunction disjunction = Restrictions.disjunction();
for (String filedName : filtration.getFieldNames())
{
if(filedName.indexOf("-")>1){
String[] feilds = filtration.getFieldName().split("-");
criteria.createCriteria(feilds[0]).add(createCriterion(feilds[1], filtration.getFieldValue(), filtration.getMatchType()));
}else{
criterion = createCriterion(filedName, filtration.getFieldValue(), filtration.getMatchType());
disjunction.add(criterion);
}
}
criterions.add(disjunction);
}
}
for (Criterion criterion : criterions)
{
criteria.add(criterion);
}
}
return criteria;
}
分享到:
相关推荐
按官方配置好了 developer.... Could not resolve com.huawei.agconnect 解决方法:把相应的插件用本地化安装 agconnect-crash-symbol-lib-1.6.1.300.jar agconnect-apms-plugin-1.6.1.300.jar agcp-1.6.1.300.jar。
hive 开发UDF 使用maven工程 引发jar包缺失 hive 开发UDF 使用maven工程 引发jar包缺失
`org.hibernate.QueryException: could not resolve property: isStudent of: com.zluo.hibernate.po.User [from com.zluo.hibernate.po.User u where u.isStudent = ?]` 当时就在想怎么会出现这个错误呢,
myeclipse创建maven工程报错 Could not resolve
在使用Maven构建Java项目时,可能会遇到这样一个错误:“Failed to execute goal on project …: Could not resolve dependencies for project …”。这个错误通常表明Maven在构建过程中遇到了依赖解析问题,无法...
在升级Android Studio到特定版本,如3.6.1时,可能会遇到一些问题,其中一个常见的问题是“Could not resolve all artifacts for configuration ‘:classpath’”。这个错误表明Gradle无法解析所有配置的依赖项,这...
Android Studio更新3.6.3之后出现Could not resolve all artifacts for configuration ‘:classpath’.问题你是否和我一样,只因在人群中多看了他一眼?![在这里插入图片描述]...
QueryException: could not resolve property 当执行HQL查询或criteria查询时,如果指定的属性名在目标类中不存在,或者属性路径有误,就会抛出此异常。例如,正确的查询可能是`from Category category where ...
Could not find module 'D:\codna\Library\bin\geos_c.dll'Could not find module 'D:\codna\Library\bin\geos_c.dll'Could not find module 'D:\codna\Library\bin\geos_c.dll'
主要介绍了解决Unable to access 'https://gitee.com/自己的项目/': Could not resolve host: gitee.com问题,需要的朋友可以参考下
新建maven项目时报Could not resolve archetype org.apache.maven.archetypes
Error:Could not resolve all files for configuration ‘:app:debugCompileClasspath’. > Could not resolve com.android.support:appcompat-v7:26.0.0-beta1. Required by: project :app > Could not ...
Eclipse Maven 创建Web 项目报错 Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap 之前找了很久才找到了,传上来更大家共享下,希望对大家有帮助,欢迎下载或者永久保存。
在使用MySQL数据库的过程中,可能会遇到“mysql could not be resolved: Name or service not known”的警告,这通常是由于MySQL在尝试反向解析客户端IP地址时失败导致的。这个问题与MySQL配置中的`skip-name-...
Could not resolve all files for configuration ':jcore-react-native:lintClassPath'. > Could not download groovy-all.jar (org.codehaus.groovy:groovy-all:2.4.15) > Could not get resource '
安卓调取usb摄像头的工具类,包含了之前版本删除掉的类,解决:libusbcamera@debug/compileClasspath': Could not resolve com.serenegiant:common:1.5.20.报错问题,需要配合repository文件夹使用
ws-commons-java5-1.0.1.jar
Couldn't resolve host name"”。这个错误意味着在下载或更新FFmpeg库的过程中,系统无法解析主机名,可能是网络问题、DNS配置错误或是CMake脚本中的URL问题。 首先,我们来理解这个问题的根源。在OpenCV的...
(第一次写文章,我经验也不足,根据自己的理解来向大家解释一下) 先说一说今天被折磨一整天的...相信点开这篇文章的同学都已经过了unable to find valid certification这一关,成功为自己的项目配置好了阿里云仓库等