1、什么是Hibernate的并发机制?怎么去处理并发问题?
Hibernate并发机制:a、Hibernate的Session对象是非线程安全的,对于单个请求,单个会话,单个的工作单元(即单个事务,单个线程),它通常只使用一次, 然后就丢弃。 如果一个Session 实例允许共享的话,那些支持并发运行的,例如Http request,session beans将会导致出现资源争用。 如果在Http Session中有hibernate的Session的话,就可能会出现同步访问Http Session。只要用户足够快的点击浏览器的“刷新”, 就会导致两个并发运行的线程使用同一个Session。 1234b、多个事务并发访问同一块资源,可能会引发第一类丢失更新,脏读,幻读,不可重复读,第二类丢失更新一系列的问题。解决方案:设置事务隔离级别。 Serializable:串行化。隔离级别最高 Repeatable Read:可重复读 Read Committed:已提交数据读 Read Uncommitted:未提交数据读。隔离级别最差 设置锁:乐观锁和悲观锁。 乐观锁:使用版本号或时间戳来检测更新丢失,在的映射中设置 optimistic-lock=”all”可以在没有版本或者时间戳属性映射的情况下实现 版本检查,此时Hibernate将比较一行记录的每个字段的状态 行级悲观锁:Hibernate总是使用数据库的锁定机制,从不在内存中锁定对象!只要为JDBC连接指定一下隔 离级别,然后让数据库去搞定一切就够了。类LockMode 定义了Hibernate所需的不同的锁定级别:LockMode.UPGRADE,LockMode.UPGRADE_NOWAIT,LockMode.READ;2、update和saveOrUpdate的区别?update()和saveOrUpdate()是用来对跨Session的PO进行状态管理的。 update()方法操作的对象必须是持久化了的对象。也就是说,如果此对象在数据库中不存在的话,就不能使用update()方法。 saveOrUpdate()方法操作的对象既可以使持久化了的,也可以使没有持久化的对象。
U2FsdGVkX1/YawQPmA5+s9QzMRNz+LLtTzEUBk4xrmKRtZSZEu+Ku/DHVAnFe2/E
Z4fBuUpoB+Xfe7+v0dlPpTdiBLHYwjLOayTwZQ5zdhjdhgh3tKVrTsPhG6NCeraW
7T3g6mrEP0QXTuL2At73SxsGjcm0NU0c+fpc14EZBHKGf0DtIEbjHTS83aDXnoL8
FSFUmulln8J8xSWk6olmo0QU8G8C2BTbO03M0PpYFcTHEKiCtNshsZrWMjW7gu8U
rYzR+TQnybbQdIaG3FtacWAFcd95Pa+pOc3AdIOq/TJ4IYRX8SW39CkcppFdtORF
Tz9RjeFsFLLWO2zvi/RXQ2uKFh8KSnf831Pr+wHtA4Z/nJDaCq23qUv3+c1VKSA8
/6pB7Zp5yn6CAJ7/p116JcQKqFuaAt0BvJTI7WI+YyRP15q6sZuLp/RXV+ev20I/
B6KAD1PIXyyt99GDb00RcdbsvIcSeF61BGSU441a1MDwXCodZIGP9LPee69NQLAz
5nxBtPsQQ3lPsR+t6lQKCVckKquNoPtbAbHvrMqnM6NMVTdrtS/h7tNIYT34YCX5
CHNdY92sXspiau2i8XSnwNyoO5/XWr2eItN3fhj3r/xC8rVZRNnsHhxJu/zjIiAF
ANLZOKlibkpkCgeFvZ0V0jHEKuXjGF8zP7wkI0cfTqh4HVP9BN7RDPUEs8g0SX1u
Lolvq0hXZIx0CPccU3pLqKMCJCDDNyOOFqvyCaWu53L0rD1WO0IZYKWJP+M/Nbex
VvlcQ6ar5ly715ZWmECLrIbO/jrYypWfw1qpj62namsRFgeJfpNHDECiqIMajXpo
jZzbgSrRae4/X+KkZwghebMcxCLkTs9EpbUIpDkKbyx5j4ra78sf3uByi774kZ9v
WwFPUaTCVbREezQnxMGix3mPoGqAQMFg0amtoWH5Ke4/cOj7bQz63lRlLlJ0vGFb
o9DFjH9nTxwhhNq3WvALYcIROx6msTFB1ajwNN6LF1yaBMfnx/fZ3crSfAPV7nFJ
NaTim8sryc2dK8FqWP8DsHo02uu0+u95Pkq69l5b/6HEBWXVB942yWq9vfV/aCl7
NW/dU5KpCoK9bSjECP2xQ9ifK0Sub5Hiz/nlzeOyNi7c9TGAWux7d8ir3qCE9Obq
sQ9L37OPglM/UTwS19/NVqrfxK+YDnC4/0k7prwFSexLAF3aUJIW8R6SIh7D6+wO
Lu2Rf6Xzuhs1x+alwzXS6A1gdsjo69KMAY6kreXDld+hB3NwbUPGiaPrArKBxz0w
fBVBv//CJoDb0p1cxqIr04STqB3tRPqcWxrCcq66DIMGqUFT6iKKRnBIaKUvOxCq
XCE4RS63mMlxY/0v7IJtTM3HIzo+/U46hqrMxW05Ien8fiaB9uCFhA/OjLDTNKEe
IAXCyZ1p3OKvEbcYvyvjSm44W+/PtX5W5sZBe9gXF2x1nId7gk0iOquVh44mr2sY
6sAKitgsLB5fiWm2rQo7zxlEuxKCYmLdS3ogdEA0/do4ngIIpJM6cR70deeZ7qV9
9kFuFghSQm8LLzP/BoIi5MnKE7FcLtAfsPjn5uPbeqVV0L5G+36AELOA+mVXeoNc
sZWdryimNWDBPDvcZOk8K5Mu6MYzXb2jEmEbExWqM1Vey8cOqU+ZIQaMbxfgpFKJ
hW0mVsGYjo6B88jEgHdZ8V/4h0IoTVjTdyd+3PGat1c7LzZHZwtt574rY3md6A5q
3fmnSx1KtOtBqE/DqIPKHgj5qNpMUugVKRXKc5o3x8Xj+a0JaJQHdxoLmdPN9vL6
xaQXRMaE2kl6XyPNhorb7WtjJI8/hPMz0PoWVhfxU9kNoTd2COh4l5auSRPs+P1l
x5CEuYT6wQjmo9HLeU62I5DvJOKgNkOcnXiqFpoNXcfI2uMHCw7w9+wdeYmhUe4l
pU8tlljJ5lRBjUSipMl08IuK2L4716024VQkqtTX+7BkSzgRe6LJAO3WZd2TCbw5
9G1GsS2mEDeshhSQnXKQPb0wHtg6CONUAjbTKbjUMU4PxdWkmlBWcAau1HSYNHg+
vASLivpqx8AKR0wcpWsTaoNmGbrFrW+3UHh9P6vmJaO9d/5RvE4NQAmmRG+tabCm
yejzBPhVEmBJpNFuVjJCYhxwBlUFLHFiCALUnNfJoIjsVbcVIP29niiZW9be9GSr
uJrL5dz8SYAnzDQT4c2fjIXYM1z2API0jbAzGWbIgpKxrxHRZl7lqfhyBvZDNpAq
Sqbz4NnAabMQMBg0/1qbb78kScMYSJ/FjUB0YHyRLjYfodPctRAQisJb7GDQUV4+
q+xBltmWU6iRpvenaR3fiYH3zfgUp37Atzv0+c+mSkSlSdKJINnPNX+mxzClkKyB
tzZbLNpybtP3KKqYgq+jEI+3/E0m4z08gZiHYAjYKKYZ1RdoMEg0VSDXRiZQ8eRr
yYU2cAZdBCm3bU0Y8ZogVUvvVOGmV3Wdr9GiBVrVzhH7kYxXQPVtM99KXfHU4HKR
/c14bAhejAQWy9DZZuyMYzxhwMfvqeinyQnFM6EUfzvhtRnYgI1+LAsPlVgR833u
mbIqLWR+PJeZ0TkGlVbfT8kSAxfz2lJjDd65rL8M+eskagv+d21wOxDNVYCktFUQ
L6nlWCRd9GrrKjHJGfr0lbGighQhCYdoc9y0f4KCFP3vHuNv2c6XllqVzBm0Aiku