rot*_*sch 6 hibernate query-by-example
你不能在关联上使用QBE是非常令人沮丧的.
我有一个大型数据表,大约有8对多列.每个列都有一个下拉列表来过滤表.
我们假设如下:
表用户
User { id, UserStatus, UserAuthorization }
Run Code Online (Sandbox Code Playgroud)
我想使用这段代码:
Criteria crit = getSession().createCriteria(class);
crit.add(Example.create(userObject));
Run Code Online (Sandbox Code Playgroud)
这不适用于以下示例userObject:
User id=1 { UserStatus=Active, UserAuthorization=Admin }
Run Code Online (Sandbox Code Playgroud)
因为QBE不支持馆藏.
解决此问题的一种方法是以这种方式使用它:
crit.createCriteria("UserStatus").add(Example.create(userStatusObject));
crit.createCriteria("UserAuthorization").add(Example.create(userAuthorizationObject));
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用给定的User对象动态编程.除了使用QBE还有其他方法吗?
您可以结合 QBE 和普通表达式来处理 QBE 不支持的部分
Criteria crit = getSession().createCriteria(class);
.add(Example.create(userObject));
.add(Expression.eq("UserStatus", userObject.getUserStatus()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1993 次 |
| 最近记录: |