數(shù)據(jù)加載中……
          在j2ee環(huán)境中ejb3.0的session bean操作entity bean的通用類 ManyActionSessionBean
          package com.vsc.study.ejb.sessionbean;

          import com.vsc.study.ejb.entitybean.Function;
          import com.vsc.study.ejb.remote.ManyActionSessionRemote;
          import com.vsc.study.ejb.util.LoggerInterceptor;
          import java.lang.reflect.Method;
          import java.util.HashMap;
          import java.util.List;
          import java.util.Map;
          import javax.ejb.Stateless;
          import javax.persistence.EntityManager;
          import javax.persistence.PersistenceContext;
          import javax.interceptor.Interceptors;

          @Stateless
          //@Interceptors({LoggerInterceptor.class})
          public class ManyActionSessionBean implements ManyActionSessionRemote {
              
              @PersistenceContext
              private EntityManager em;
             
              public Map getCurrentResults(int currentPage, int pageSize,
                      int maxResultSet,String querySql) {
                  if(maxResultSet==0){
                      maxResultSet = em.createQuery(querySql).getResultList().size();
                  }
                  List list = em.createQuery(querySql).setFirstResult(
                          (currentPage - 1) * pageSize).setMaxResults(pageSize)
                          .getResultList();
                  HashMap hashMap = new HashMap();
                  hashMap.put(maxResultSet, list);
                  return hashMap;
              }
             
              public Map getCurrentResults(int currentPage, int pageSize,
                      int maxResultSet,Object object) {
                  if(maxResultSet==0){
                      maxResultSet = em.createQuery("from " + object.getClass().getSimpleName()).getResultList().size();
                  }
                  List list = em.createQuery("from " + object.getClass().getSimpleName())
                  .setFirstResult((currentPage - 1) * pageSize).setMaxResults(
                          pageSize).getResultList();
                  HashMap hashMap = new HashMap();
                  hashMap.put(maxResultSet, list);
                  return hashMap;
              }
             
              public int remove(Object object) {
                  if (object == null)
                      return -1;
                  try {
                      em.remove(this.search(object));
                      return 0;
                  } catch (Exception e) {
                      return -2;
                  }
              }
             
              public int[] removes(Object[] objects) {
                  if(objects==null)
                      throw new NullPointerException();
                  int[] results = new int[objects.length];
                  for (int i = 0; i < objects.length; i++) {
                      Object obj = em.find(objects.getClass(), this.getId(objects[i]));
                      if (obj != null) {
                          results[i] = this.remove(obj);
                      }
                  }
                  return results;
              }
             
              public int update(Object object) {
                  if (object == null || this.getId(object) == null)
                      return -1;
                  Object obj = this.search(object);
                  if (obj == null)
                      return -2;
                  this.updateEntityBean(object, obj);
                  try {
                      em.merge(obj.getClass().cast(obj));
                      return 0;
                  } catch (Exception e) {
                      return -1;
                  }
              }
             
              public Object search(Object object) {
                  if (object == null || this.getId(object) == null)
                      return -1;
                  try {
                      return em.find(object.getClass(), this.getId(object));
                  } catch (Exception e) {
                      e.printStackTrace();
                      return -1;
                  }
              }
             
              public List  searchAll(Object object) {
                  if (object == null)
                      return null;
                  try {
                      return em.createQuery("from " + object.getClass().getSimpleName()).getResultList();
                  } catch (Exception e) {
                      e.printStackTrace();
                      return null;
                  }
              }
             
              public Long insert(Object object) {
                  try {
                      em.persist(object.getClass().cast(object));
                      return this.getId(object);
                  } catch (Exception e) {
                      e.printStackTrace();
                      return -1l;
                  }
              }
             
              public Long getId(Object object) {
                  if (object == null)
                      return -1l;
                  try {
                      return (Long) object.getClass().getDeclaredMethod("getId").invoke(
                              object);
                  } catch (Exception e) {
                      e.printStackTrace();
                      return -5l;
                  }
              }
             
              /**
               * obj is update Object
               *
               * @param object
               * @param obj
               */
              public void updateEntityBean(Object object, Object obj) {
                  try {
                      Method[] methods = object.getClass().getDeclaredMethods();
                      Method method;
                      Object objectMethodValue;
                      Object objMethodValue;
                      for (int i = 0; i < methods.length; i++) {
                          if (methods[i].getName().trim().startsWith("get")) {
                              if (methods[i].invoke(object) == null) {
                                  System.out
                                          .println("----------this field is null--------------");
                                  continue;
                              }
                              objectMethodValue = methods[i].invoke(object);
                              objMethodValue = methods[i].invoke(obj);
                              if (objectMethodValue.equals(objMethodValue)) {
                                  System.out
                                          .println("----------field is equals--------------");
                                  continue;
                              }
                              method = obj.getClass().getDeclaredMethod(
                                      methods[i].getName().trim().replaceFirst("g", "s"),
                                      methods[i].getReturnType());
                              method.invoke(obj, objectMethodValue);
                              System.out.println("==============="
                                      + methods[i].invoke(obj));
                          }
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
              }
          }

          posted on 2008-02-25 15:23 java flex 結合 閱讀(872) 評論(1)  編輯  收藏 所屬分類: ejb 3.0

          評論

          # re: 在j2ee環(huán)境中ejb3.0的session bean操作entity bean的通用類 ManyActionSessionBean 2009-07-16 17:35 找個美女做老婆

            回復  更多評論    
          主站蜘蛛池模板: 福清市| 黑水县| 吉水县| 遵义市| 济阳县| 乐业县| 和硕县| 银川市| 板桥市| 盐边县| 东源县| 安宁市| 寻乌县| 隆安县| 万载县| 文化| 巫山县| 平湖市| 揭西县| 安远县| 勐海县| 白城市| 平阴县| 兴海县| 清河县| 扬中市| 梁河县| 温宿县| 尚义县| 怀仁县| 上虞市| 富锦市| 凤凰县| 从江县| 广平县| 孟连| 毕节市| 若尔盖县| 罗田县| 赣州市| 民和|