- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate
一些概念
O/R paradigm mismatch(阻抗不匹配)
O/R mapping
实体对象:
An object of entity type has its own database identity (primary key value).
An object reference to an entity instance is persisted as a reference in the
database (a foreign key value). An entity has its own lifecycle; it may exist
independently of any other entity.
值对象:
An object of value type has no database identity; it belongs to an entity
instance and its persistent state is embedded in the table row of the owning
entity. Value types don’t have identifiers or identifier properties. The
lifespan of a value type instance is bounded by the lifespan of the owning
entity instance. A value type doesn’t support shared references:
领域模型(domain model)
id生成策略
native: 根据底层数据库的能力选择identity, sequence, hilo中的一个
identity: 对DB2, MySQL, SQL Server等的内置标识字段提供支持。
sequence:在DB2,Oracle中使用序列。
hilo:使用一个高/低位算法生成标识符(默认hibernate_unique_key, next_hi),该算法只在一个特定的数据库中是唯一的
increment:只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不能使用。
Uuid:用一个128-bit的UUID算法生成字符串类型的标识符,这在一个网络中式唯一的(使用了IP 地址)。
SQL Statement生成策略
一)default statements generated on startupBy default, Hibernate creates SQL statements for each persistent class on startup.These statements are simple create, read, update, and delete operations for reading a single row, deleting a row, and so on.the generated SQL statement updates all columns, and if the value of a particular column isn’t modified, the statement sets it to its old value.二)dynamic statements generated at runtime????? 1)property元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false????? 2)property元素 dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false????? 3)class元素 dynamic-insert属性:设置为true,表示把所有的property元素的dynamic-insert属性设置为true,默认false????? 4)class元素 dynamic-update属性:设置为true,表示把所有的property元素的dynamic-update属性设置为true,默认false总结:如果表中包含N多字段,建议把dynamic-update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包 括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效
文档评论(0)