最近做一个项目中.涉及到一个频道的定制问题.描述如下. 多个用户可以定制多个频道.但不能重复定制.
我的构想是如果用户已定制了该频道后.就不在在当前用户浏览的订制频道页面显示出来.这样可防重复定制. 一共三张表.user表.channel表 user_channel表 查询浏览频道时:
用以下sql: Java代码
select a.* from channel as a left join user_channel as b on (a.id = b.channelid) where b.id is null or b.userId <> 22 注:22为用户登录ID
这个语句发现一个问题.查询出来数据有重复.比如channelid为35的频道 未被22的用户定制.但被23.24两个用户定制了.这样的话,发现查出来的数据有两条.用了distinct去重.发现这个不好用.不能查出channel所有纪录如distinct(*),只能查出一列distinct(name)等.
同时想把这个sql转换成hql或是Criteria查询方式 .发现不支持on
关于这个同一频道不希望被一个用户重复定制的问题,谁有好的成功解决方案,期待分享.有较好可行的思路也行.谢谢.
我的构想是如果用户已定制了该频道后.就不在在当前用户浏览的订制频道页面显示出来.这样可防重复定制. 一共三张表.user表.channel表 user_channel表 查询浏览频道时:
用以下sql: Java代码
select a.* from channel as a left join user_channel as b on (a.id = b.channelid) where b.id is null or b.userId <> 22 注:22为用户登录ID
这个语句发现一个问题.查询出来数据有重复.比如channelid为35的频道 未被22的用户定制.但被23.24两个用户定制了.这样的话,发现查出来的数据有两条.用了distinct去重.发现这个不好用.不能查出channel所有纪录如distinct(*),只能查出一列distinct(name)等.
同时想把这个sql转换成hql或是Criteria查询方式 .发现不支持on
关于这个同一频道不希望被一个用户重复定制的问题,谁有好的成功解决方案,期待分享.有较好可行的思路也行.谢谢.
解决方案 »
- <求助>java.lang.NullPointerException解决不了
- lomboz-all-in-one-R-3.3在下面Window-->Preference下不能看到Lomboz
- java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- 根据一对多或多对多关联的属性条件进行查询的HQL语句怎么写?
- 为什么我的tomcat的时间和系统时间不一致
- 请问一下 EJB中session的home接口 的create() 方法 会做些甚么事情?
- 非常奇怪,tomcat装在c盘没问题,装其他盘就起不来了
- servlet如何接收application传来的值?
- 哪里有决策支持系统,谢谢!
- this.getServletContext().getRealPath("/UpImage");
- JDK的问题
- 网页右下角的浮动框如何实现?
两边查出都是对象的list.
难道一个个进行对象比较?