2008-05-30
Hibernate Expressions 表达式属性的含义
看过《深入浅出Hibernate》的人想必对这个例子都非常熟悉
Expression.eq(String arg1, Object arg2) 就等价于 SQL中的“field = value”。
note:
但是实际上arg1代表的是class TUser 中的property - name 而不是数据库表T_User中的
filed - name
由于在用简单属性查询时,有时候根本意识不到自己现在操作对象的是属性还是DB中的域,
下面用一个更明显例子:
User.java
Computer.java
一个User 对象可以拥有 多台 Computer,这样就形成了 many-to-one 结构。
在T_COMPUTER中用一个域 OWNER_ID记住 机主的ID。
如果要查询一个User对象用有的所有电脑时,
使用表达式 Expression.eq("owner" owner)
而不是 Expression.eq("OWNER_ID", owner.getId());
这就印证了上面的说法
Restrictions应该也是类似的。
Criteria criteria = session.createCriteria(TUser.class);
criteria.add(Expression.eq("name","Erica"));
criteria.add(Expression.eq("sex",new Integer(1)));
Expression.eq(String arg1, Object arg2) 就等价于 SQL中的“field = value”。
note:
但是实际上arg1代表的是class TUser 中的property - name 而不是数据库表T_User中的
filed - name
由于在用简单属性查询时,有时候根本意识不到自己现在操作对象的是属性还是DB中的域,
下面用一个更明显例子:
User.java
class User {
private String name;
private String id;
private Integer age;
/*一下略去 getter setter*/
}
Computer.java
class Computer{
String id;
String name;
User owner;
/*getter setter 略去*/
}
一个User 对象可以拥有 多台 Computer,这样就形成了 many-to-one 结构。
在T_COMPUTER中用一个域 OWNER_ID记住 机主的ID。
如果要查询一个User对象用有的所有电脑时,
使用表达式 Expression.eq("owner" owner)
而不是 Expression.eq("OWNER_ID", owner.getId());
这就印证了上面的说法
Restrictions应该也是类似的。
- 10:27
- 浏览 (77)
- 论坛浏览 (296)
- 评论 (0)
- 分类: Java
- 相关推荐
最新评论
-
sourceforge上不去了,什 ...
f u c k G FW
-- by openeyes -
Compass的SearchableRefe ...
晕,搜问题搜到自己这里了。。。
-- by NicholasBugs -
DispatchAction 和DynaVa ...
可以用MappingDispatchAction.
-- by dmewy -
spring struts velocity ...
找到一个方案:参照http://www.ibm.com/developerwor ...
-- by NicholasBugs -
spring struts velocity ...
这样的配置真啰嗦,还不如直接用spring MVC.
-- by slaser







评论排行榜