請教一個hibernate組合查詢的問題,謝謝!

          Posted on 2007-05-24 20:07 姜海龍 閱讀(1129) 評論(2)  編輯  收藏 所屬分類: 個人收藏
          我有7個表
          1、user存儲用戶信息
          2、role存儲角色信息
          3、menu存儲菜單信息,其中每個菜單對應一個function信息
          4、function存儲功能模塊信息
          5、o_func_user存儲用戶和功能關聯關系
          6、o_func_role存儲角色和功能關聯關系
          7、o_role_user存儲角色和用戶關聯關系
          我要根據用戶ID取得所擁有的菜單權限,當然寫SQL語句很簡單,但是對HSQL不是很熟悉,請問如何用HSQL取得所擁有的菜單信息?

          Feedback

          # ssh框架怎樣對數據庫做修改、添加操作?[未登錄]  回復  更多評論   

          2007-05-30 11:54 by 新人
          1.具體的Action里不會寫!!
          DAO接口
          *****************
          package com.linkingstar.bis.common.dao;

          import java.util.List;

          import com.linkingstar.bis.common.model.UserPO;

          /**
          *
          * 用戶數據表的DAO接口
          *
          */

          public interface IUserDAO {

          UserPO get(String userId);

          void save(UserPO userPO);

          void update(UserPO userPO);

          void remove(UserPO userPO);

          List findAll();
          List findAll2(String usercode);
          List findODD(String usercode);


          }
          *****************
          DAO
          *****************
          package com.linkingstar.bis.common.dao;

          import java.util.ArrayList;
          import java.util.List;

          import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

          import com.linkingstar.bis.common.model.UserPO;
          import com.linkingstar.bis.common.dao.IUserDAO;

          /**
          *
          * 用戶數據表的DAO實現類
          *
          */
          public class UserDAOImpl extends HibernateDaoSupport implements IUserDAO {
          private String LOAD_BY_ALL = "from UserPO userPO";
          private String LOAD_BY_ODD = "from UserPO userPO where userPO.usercode=?";
          public UserDAOImpl() {
          super();
          }
          public UserPO get(String userId) {
          try{
          return (UserPO) this.getHibernateTemplate().get(UserPO.class,userId);
          }catch(Exception ex){
          ex.printStackTrace();
          return null;
          }
          }
          public void save(UserPO userPO) {
          try {
          this.getHibernateTemplate().save(userPO);
          } catch (Exception ex) {
          ex.printStackTrace();
          }
          }
          public void update(UserPO userPO) {
          try {
          this.getHibernateTemplate().update(userPO);
          } catch (Exception ex) {
          ex.printStackTrace();
          }
          }
          public void remove(UserPO userPO) {
          try {
          this.getHibernateTemplate().delete(userPO);
          } catch (Exception ex) {
          ex.printStackTrace();
          }
          }
          public List findAll() {
          try{
          return this.getHibernateTemplate().find(LOAD_BY_ALL);
          }catch(Exception ex){
          ex.printStackTrace();
          return new ArrayList();
          }
          }
          public List findODD(String usercode) {
          try{
          this.getHibernateTemplate().find(LOAD_BY_ODD,usercode);
          }catch(Exception ex){
          ex.printStackTrace();
          return new ArrayList();
          }
          }
          public List findAll2(String usercode) {
          try{
          String s="改 前 查詢 ";
          System.out.println(s);
          return this.getHibernateTemplate().find(LOAD_BY_ALL);

          }catch(Exception ex){
          ex.printStackTrace();
          return new ArrayList();
          }
          }
          }
          ********************
          2.BO
          BO接口
          *************
          package com.linkingstar.bis.common.service;

          import java.util.List;

          import com.linkingstar.bis.common.model.UserPO;

          /**
          *
          * 用戶數據表的BO接口
          *
          */

          public interface IUserService {

          public UserPO get(String userId);

          public void save(UserPO userPO);

          public void update(UserPO userPO);

          public void remove(UserPO userPO);

          List findAll();
          List findAll2(String usercode);
          List findODD(String usercode);
          }
          ***********
          BO
          ***********
          package com.linkingstar.bis.common.service;

          import java.util.List;

          import com.linkingstar.bis.common.dao.IUserDAO;
          import com.linkingstar.bis.common.model.UserPO;

          /**
          *
          * 用戶數據表的BO實現類
          *
          */

          public class UserServiceImpl implements IUserService{

          private IUserDAO userDAO;
          public IUserDAO getUserDAO(){
          return this.userDAO;
          }
          public void setUserDAO(IUserDAO userDAO){
          this.userDAO = userDAO;
          }

          /**
          *
          */
          public UserServiceImpl() {
          super();
          }
          /**
          *
          */
          public UserPO get(String userId) {
          return this.getUserDAO().get(userId);
          }
          public void save(UserPO userPO) {
          this.getUserDAO().save(userPO);
          }
          public void update(UserPO userPO) {
          this.getUserDAO().update(userPO);
          }
          public void remove(UserPO userPO) {
          this.getUserDAO().remove(userPO);
          }
          public List findAll() {
          this.getUserDAO().findAll();
          return this.getUserDAO().findAll();
          }
          public List findAll2(String usercode) {
          this.getUserDAO().findAll2(usercode);
          return this.getUserDAO().findAll2(usercode);
          }
          public List findODD(String usercode){
          this.getUserDAO().findODD(usercode);
          return this.getUserDAO().findODD(usercode);
          }
          }
          ********

          # re: 請教一個hibernate組合查詢的問題,謝謝!  回復  更多評論   

          2007-06-07 11:26 by driver
          Hibernate對多表聯合查詢還不健全,現有的方法很不方便
          建議你用spring的jdbcTemplate查詢。

          posts - 9, comments - 19, trackbacks - 0, articles - 1

          Copyright © 姜海龍

          主站蜘蛛池模板: 封丘县| 柯坪县| 天等县| 二连浩特市| 洪洞县| 沙田区| 信宜市| 泽库县| 天津市| 湘乡市| 镇原县| 乌拉特后旗| 双鸭山市| 武鸣县| 邓州市| 齐齐哈尔市| 登封市| 佛冈县| 醴陵市| 松阳县| 闵行区| 永清县| 汉沽区| 高要市| 阿城市| 柞水县| 江油市| 扶余县| 天峻县| 长垣县| 革吉县| 泰顺县| 镇雄县| 仪征市| 芦山县| 大邑县| 克拉玛依市| 莲花县| 会东县| 九龙县| 平南县|