dubbo下如何使用hibernate的级联操作

a461666405 2017-03-08 03:51:57
加精
问题描述:
1、dubbo在进行hibernate级联操作时会报session已关闭的错误。这错误平时开启opensessioninviewfilter解决。
在通过dubbo调用接口时,dubbo只会走自己的一套filter,需要实现com.alibaba.dubbo.rpc.Filter。普通filter不生效。

所以我想到的办法是把spring包里的opensessioninviewfilter拿出来改一改。

但是同样遇到问题:
2、javax.servlet.Filter需要实现的是
public void doFilter ( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException;

而com.alibaba.dubbo.rpc.Filter
public Result invoke(Invoker<?> invoker, Invocation invocation)throws RpcException

我不知道在实现dubbo的filter时再哪里能拿到 HttpServletRequest !
百度, @Context和RpcContext.getContext().getRequest() (出自《在Dubbo中开发REST风格的远程调用(RESTful Remoting)》http://dangdangdotcom.github.io/dubbox/rest.html )
感觉并不是正式版的dubbo.(是否是dubbox?),
无法实现(注解注入为null,第二个我去git上看了没有这个方法)!

上面两个问题解决哪个都可以。

甚至可以和我说一说hibernate级联操作特别坑的地方,然后说服我让我不使用级联。

如果觉得我这个思路哪里有问题欢迎指出!

麻烦各位大牛了!
...全文
6906 58 打赏 收藏 转发到动态 举报
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
时间去旅行 2018-02-05
  • 打赏
  • 举报
回复
learning
qq_40881558 2018-01-25
  • 打赏
  • 举报
回复
learning
xulaiyou110 2018-01-24
  • 打赏
  • 举报
回复
我的疑问 dubbo 会管理 或者影响服务端的 hibernate 或者mybatis吗
cattpon 2018-01-10
  • 打赏
  • 举报
回复
learning~
cattpon 2018-01-09
  • 打赏
  • 举报
回复
LEARNING ~
  • 打赏
  • 举报
回复
dubbo不侵入任何业务操作,dubbo操作级联看不太明白。dubbo实现了多个协议,是通过网络进行服务治理的。dubbo的上一层肯定不会有dubbo下一层事务概念的。如果出现了在接口层需要hibernate的事务获取对象的关联属性,这说明架构是有问题的。另外,我感觉不应该劝你放弃hibernate的关联操作,除非你对效率有极高要求。
wqdsfwer 2018-01-04
  • 打赏
  • 举报
回复
你为啥非要在service层以下的位置去使用request或者response呢,是为了下载上传文件吗,这一部分建议放到action去处理,dubbo拆分后是明显的两个服务了,干啥非要session去共享,service人家给你返回了相应的数据不就可以了,dubbo级联跨两个服务是不可能的,也可能我技术低,现在还没有解决,而且参数传递设计时和返回值是最好是返回model就是没有带级联的,参数也一样,要是你非要传带级联的实体,你可以把级联属性给设置为null也一样使用,现在我用dubbo就是这样用的,可以用就是很麻烦,楼主有好的解决方法,给分享下
qq_41574262 2018-01-02
  • 打赏
  • 举报
回复
怎么还不行呢
  • 打赏
  • 举报
回复
你使用了 rest风格的 dubbo ? 依据我所查件的资料,只有 dubbox才支持rest , dubbo是不支持rest的; dubbox就是 当当网维护的那个版本,你从这里找资料吧。
cattpon 2017-12-25
  • 打赏
  • 举报
回复
learning~
cattpon 2017-12-24
  • 打赏
  • 举报
回复
learning~
weixin_41518421 2017-12-24
  • 打赏
  • 举报
回复
楼主 请问你现在解决这个问题了吗?
cattpon 2017-12-23
  • 打赏
  • 举报
回复
learning~
wu707 2017-12-22
  • 打赏
  • 举报
回复
learning~
cattpon 2017-12-22
  • 打赏
  • 举报
回复
learning~
cattpon 2017-12-21
  • 打赏
  • 举报
回复
learning~
聪头 2017-12-21
  • 打赏
  • 举报
回复
天台的故事 2017-12-21
  • 打赏
  • 举报
回复
主要有四种办法吧 1.lazy=ture 2.OpenSessionInViewFilter 3.抓取策略join 4.在session没有关闭时hibernate.initialize
aierda 2017-12-21
  • 打赏
  • 举报
回复
learning~
  • 打赏
  • 举报
回复
mark。。。。
加载更多回复(32)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧