只显示主题贴

问题没解决,反倒放进了新手贴,寒心!
我的意思是大家怎么处理复合主键,因为对Hibernate在企业中的应用不熟悉,大家平时在公司是怎么处理的.这种情况下是使用复合主键呢还是使用代理主键!
最近在学校工作室做项目时碰到一个Hibernate复合主键的问题,也就是多对多映射的时候中间表不使用代理主键的话会用到复合主键,如果使用代理主键的话,那么中间表的外键肯定是many-to-one的,这样的话跟业务要求不合(即两端的主键合成的中间表外键必须是唯一的,而这样能做到不唯一)。物理模型见附件。 大概描述: 收邮件 用户表-n----m-用户_邮件表-p----n-邮件表 发邮件 用户表-n-----1-邮件表 中间表的映射: <composite-id name="id" class="cn.magicoa.skstudio.domain.U ...
这段时间又碰到了问题,发现还是没有效果,对lazy和fetch的作用认识还不够. 原本以为设置lazy="true",在hql中指定outer join就会导航到对应的子数据中去,但是实际却令人失望.最后,为了达到预期效果,不得不使用fetch属性来实现预期效果. fetch参数指定了关联对象抓取的方式是select查询还是join查询,select方式时先查询返回要查询的主体对象(列表),再根据关联外键id,每一个对象发一个select查询,获取关联的对象,形成n+1次查询; 而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。 如果你的关联对象是 ...
 前段时间搞了一个简单的单用户登陆实现例子,虽然不能实现敏捷反应,但是对安全相对要求底的系统还是可以考虑的。    具体原理:结合过滤器+Servlet监听器。     ServletContext对象保存的是整个WEB应用程序的共享信息,那么如果用户登陆可以把用户的部分信息保存在ServletContext中。    Servlet监听器可以监听用户过期或者注销,把用户信息从ServletContext中删除。    那么,现在关键是如何设计保存在ServletContext中的用户信息:这里, ...
   以前碰到一个延迟加载问题,就是lazy=true的时候出现session close后读取不到数据,出现错误,现在这里总结一下经验: 一:lazy=false,这种方式效率底,不合适. 二:fetch=join,这种方式和上一种差不多. 三:使用OpensessionInView,这种方式事务管理有很多不稳定性(主要存在事务边界的不确定性),此时lazy=true. 四:就是在DAO层把数据read出来,lazy=true,这样不符合ORM关联查询思想. 五:个人认为最佳方案,就是使用动态外连接查询,此时lazy=true.
上次朋友问,后来关注了一下,具体方法: java.sql 接口 Statement  boolean execute(String sql, int autoGeneratedKeys)           执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序所有自动生成的键都应该可用于获取。 static int RETURN_GENERATED_KEYS     &n ...
没是实质性的东西啊
LZ的DAO好象没共享吧,这才是我想看到的东西!
  • 进入论坛 AJAX
是的,使用spring结合hibernate来操作是不会出现问题, 但是LZ有没有碰到过这种问题,以前我做的一些东西没有使用spring来管理hibernate进行数据库操作,而是使用hibernate直接查询数据库,多表查询的时候如果只是加载单个表,比如部门和员工是一对多的,如果我把部门的信息放在List里面,查询结束后需要session.close()吧,如果我再用list去读取员工的数据,将会出现session is closed错误,数据不能进行lazing!
  • 进入论坛 Java
beyondqinghua
搜索本博客
最近加入圈子
存档
最新评论