[jboss-user] [EJB 3.0] - Re: SOS
zhuhuapeng@gmail.com
do-not-reply at jboss.com
Tue Aug 26 09:58:03 EDT 2008
CommonDBAction:
| package jpa.common;
|
| import java.util.List;
|
| import javax.ejb.TransactionAttribute;
| import javax.ejb.TransactionAttributeType;
| import javax.persistence.EntityManager;
| import javax.persistence.FlushModeType;
| import javax.persistence.Query;
|
|
| import jpa.common.client.CommonUtil;
| import jpa.common.client.DataInfo;
| import jpa.entity.cattle.SmallToad;
| import jpa.exp.client.DuplicateObjExp;
|
| /**
| * 该类ä¸é对ä¸äºéç¨çæ°æ®åºæä½æ¹å¼æä¾äºå°è£
.
| * ä»è为serviceä¸çè°ç¨æä¾äºæ¯æï¼ç®åäºä»£ç .
| * @author howard.zhu
| *
| */
| public class CommonDBAction {
|
| /**
| * å é¤ä¸ä¸ªå¯¹è±¡ï¼æ¤æ¶éè¦æä¾ä¸ä¸ªæ ¹æ®IDæ¥è¯¢å¾å°ç对象.
| * @param <T>
| * @param id
| * @param em
| * @param eo
| * @return
| */
| //@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
| public static <T extends SmallToad> int deleteObjById(int id,EntityManager em ,T eo ) {
| if(id < 0 )
| {
| return CommonUtil.persistResult.INVALID_BEDELETEDOBJ;
| }
|
| if(null == eo )
| {
| return CommonUtil.persistResult.INVALID_BEDELETEDOBJ;
| }
| if(eo.getDataInfo().equals(DataInfo.BASIC))
| {
| //åä¿æ¤çæ°æ®ï¼ä¸å
许å é¤.
| return CommonUtil.persistResult.PROTECTED_OBJ;
| }else
| {
| em.remove(eo);
| }
| return CommonUtil.persistResult.SUCCESS ;
| }
|
| /**
| * æ¥è¯¢ææç该类对象.
| * @return
| */
| @SuppressWarnings("unchecked")
| public static <T> List<T> queryAllObjs(String namedQuery,EntityManager em,Class<? extends Object> T) {
| Query query = em.createNamedQuery(namedQuery);
| //ä¸å¤çæ¥è¯¢å¤±è´¥çæ
åµï¼æ²¡ææ¥è¯¢å°å¼ï¼åé»è®¤è¿åä¸ä¸ªnull;
| if(null == query)
| {
| return null;
| }
|
| return (List<T>)query.getResultList();
| }
|
|
| @SuppressWarnings("unchecked")
| public static <T> T queryByID(int id,EntityManager em,String namedQuery,String paramName ,Class<? extends Object> T) {
| if(id < 0)
| {
| return null;
| }
| Query query = em.createNamedQuery(namedQuery).setParameter(paramName, id);
|
| if(null == query)
| {
| return null;
| }
| if(null == query.getResultList() || query.getResultList().size() <= 0)
| {
| return null;
| }
| return (T)query.getSingleResult();
| }
|
|
| @SuppressWarnings("unchecked")
| public static <T> T queryByName(String name,EntityManager em,String namedQuery,String paramName ,Class<? extends Object> T) {
| if(null == name || "".equals(name.trim()))
| {
| return null;
| }
| Query query = em.createNamedQuery(namedQuery).setParameter(paramName, name);
| if(null == query)
| {
| return null;
| }
| if(null == query.getResultList() || query.getResultList().size() <= 0)
| {
| return null;
| }
| return (T)query.getSingleResult();
| }
|
|
|
| public static <T extends SmallToad> int storeObj(T eo,EntityManager em,List<T> mayMultyObjs) {
|
| if(!eo.checkInsertable())
| {
| //æ æç对象
| return CommonUtil.persistResult.INVALID_OBJECT;
| }
| int result = CommonUtil.persistResult.FAILURE;
| if(null != mayMultyObjs && (mayMultyObjs.size() > 0) )
| {
| for(T t : mayMultyObjs)
| {
| if(null != t)
| {
| return CommonUtil.persistResult.ALREADY_EXIST;
| }
| }
| }
| em.persist(eo);
| result = eo.getIdAfterInsert();
| return result;
| }
|
|
| public static <T extends SmallToad> T updateObj(T eo,EntityManager em,List<T> mayMultyObjs,T existsObj)
| throws DuplicateObjExp {
|
| if(!eo.checkupdateble())
| {
| //æ æç对象
| return null ;
| }
| if(null != mayMultyObjs)
| {
| for(T t : mayMultyObjs)
| {
| if(null != t && (t.getIdAfterInsert() != eo.getIdAfterInsert()))
| {
| //对象已ç»åå¨
| throw new DuplicateObjExp("multy stype in db! update failure !");
| }
| }
| }
|
| if(null == existsObj)
| {
| return null;
| }else{
| if(eo.getDataInfo().equals(DataInfo.BASIC))
| {
| //åºç¡æ°æ®ï¼ä¸æ´æ°.
| return existsObj;
| }else
| {
| existsObj.copy(eo);
| return em.merge(existsObj);
| }
| }
| }
|
| }
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4172586#4172586
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4172586
More information about the jboss-user
mailing list