hibernate中
constrained的之前只是明白在one-to-one的映射中使用。但是对具体含义不是很明白。手册上说:
constrained(约束) (可选) 表明该类对应的表对应的数据库表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束。 这个选项影响
save() 和
delete() 在级联执行时的先后顺序以及 决定该关联能否被委托(也在schema export tool中被使用).
今天在应用中碰到了一个bug,如果 constrained=true,则表明存在外键与关联表对应,并且关联表中肯定存在对应的键与其对应。hibernate生成的sql将使用inner join. 另外该选项最关键的是影响save和delete的先后顺序。例如增加的时候,如果constainted=true,则会先增加关联表,然后增加本表。删除的时候反之。
|