hibernate之constrained详解
2015-07-03 10:24
477 查看
hibernate之constrained详解
lazy(可选 — 默认为
proxy):默认情况下,单点关联是经过代理的。
lazy="no-proxy"指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetche lazily)(需要运行时字节码的增强)。
lazy="false"指定此关联总是被预先抓取。注意,如果
constrained="false",
不可能使用代理,Hibernate会采取预先抓取。
constrained默认值为false
constrained只能在one-to-one的映射中使用,(一般在主表的映射中,有外键的那个表)。如果constrained=true,则表明存在外键与关联表对应,并且关联表中肯定存在对应的键与其对应, 另外该选项最关键的是影响save和delete的先后顺序。例如增加的时候,如果constainted=true,则会先增加关联表,然后增加本表。删除的时候反之。
[code]one-to-one的单向关联中,如果constrained=false,则会在查询时就全部取出来,用left outer join的方式。如果constrained=true,hibernate即会延迟加载sql,只把主表的查出来,等有用到关联表的再发sql取。
one-to-one的双向关联中,必须设置constrained=true,要不然会有重复数据读,如2个表user,car;在位false时sql如下:select * from user a left outer join car b on a.id=b.id left outer join on user c on a.id=c.id where a.id=? 删除的时候最好删除从表,删除主表会先查询下主表,在联合查询下。
相关文章推荐
- 解决SplitContainer控件残留虚线的方法
- copy一篇文章,主要看看 cookie 的 path 和 domain
- 如果想在main函数之前或main函数之后做一些工作
- 编译 xenomai3
- 重建ocr和vote的方法(客户aix掉电后故障)
- 最严谨的校验email地址的正则表达式及各种语言对应版
- Firefly带你回顾Maker Faire 2015的创客盛典
- 企业邮件系统的需求、隐患以及解决方法
- [git] How to solve “agent admitted failure to sign
- Failed to execute goal org.apache.maven.plugins:ma
- AI-随机迷宫&迷宫求解
- Contains Duplicate
- available bandwidth paper(1)
- sleep()、yield()和wait()
- How Much Did It Rain? Winner's Interview: 1st place, Devin Anzelmo
- keyChain使用的
- openssl之BIO系列之16---BIO对(pair)类型BIO
- Container With Most Water
- 【Leetcode Algorithm】Contains Duplicate II
- Contains Duplicate II