我看到hibernate的session.get()和load()方法只接受Serializable对象.
根据我对hibernate的理解,它将生成一个SQL语句并将其发送给DBMS.它永远不需要通过网络发送java对象.
为什么hibernate强制对我们进行序列化?
首先,Hibernate Serializable
在某些签名中使用的事实并不意味着Hibernate 将序列化任何东西,它只是意味着如果需要,参数是可序列化的.
然后,我找不到绝对的参考,但我认为最强的论点是:
一些较弱的参数(或根本不参数):
Session
本身可被潜在地串行化(例如,以被存储在HttpSession
)entityId
(包括复合PK)考虑到所有这些,我认为强制API的用户通过a是有意义的Serializable entityId
,这允许不关闭任何门并避免任何后期限制(oops,你不能激活二级缓存,因为这不是pk Serializable
).这是IMO比使用更好的设计决策Object
.说实话,我没有看到任何烦恼.
归档时间: |
|
查看次数: |
4040 次 |
最近记录: |