`
doctang
  • 浏览: 4473 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

FlexCaseDAO

 
阅读更多
package com.foxconn.nwe.flex.ejb.dao;

import java.util.List;

import com.foxconn.nwe.flex.ejb.model.FlexCase;

public interface FlexCaseDAO {
public FlexCase find(String id);

public long sum();

public List<FlexCase> list(int start, int limit);

public long sum(String caseName);

public List<FlexCase> list(String caseName, int start, int limit);

public List<FlexCase> list(String state);

public String createId();

public boolean insert(FlexCase flexCase);

public boolean update(FlexCase flexCase);

public boolean delete(String id);
}

package com.foxconn.nwe.flex.ejb.dao.jpa;

import java.util.List;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import com.foxconn.nwe.flex.ejb.dao.FlexCaseDAO;
import com.foxconn.nwe.flex.ejb.model.FlexCase;

@Stateless
@Remote({FlexCaseDAO.class})
public class FlexCaseDAOBean implements FlexCaseDAO {

@PersistenceContext(unitName = "Oracle104PU")
private EntityManager em;

/**
* 根據屬性id獲得FlexCase對象
*
* @author f1410198
*/
public FlexCase find(String id) {
return em.find(FlexCase.class, id);
}

/**
* 按頁獲得FlexCase對象列表
*
* @author f1410198
*/
@SuppressWarnings("unchecked")
public List<FlexCase> list(int start, int limit) {

/* 按專案狀態和接單日期降序排序 */
String jpql = "select c from FlexCase c order by c.acceptDate desc,c.state desc";

/* 創建查詢 */
Query query = em.createQuery(jpql);

/* 設定每頁顯示的起始行和頁大小 */
query.setFirstResult(start);
query.setMaxResults(limit);

return query.getResultList();
}

/**
* 按專案名稱進行模糊查找
*
* @author f1410198
*/
@SuppressWarnings("unchecked")
public List<FlexCase> list(String caseName, int start, int limit) {

/* 按專案名進行模糊查詢 */
String jpql = "select c from FlexCase c where c.caseName like '%"
+ caseName + "%' order by c.state desc,c.acceptDate desc";

Query query = em.createQuery(jpql);

query.setFirstResult(start);
query.setMaxResults(limit);

return query.getResultList();
}

/**
* 根據結案狀態獲得的FlexCase對象列表
*
* @author f1410198
* @param state
* @return List<FlexCase>
*/
@SuppressWarnings("unchecked")
public List<FlexCase> list(String state) {

/* 按專案狀態查詢 */
String jpql = "select c from FlexCase c where c.state=?1 order by c.acceptDate desc";

/* 創建查詢并設置參數 */
Query query = em.createQuery(jpql).setParameter(1, state);

return query.getResultList();
}

/**
* 獲得FlexCase對象總行數
*
* @author f1410198
*/
public long sum() {

/* 統計對象總行數 */
String jpql = "select count(c) from FlexCase c";

Query query = em.createQuery(jpql);

return (Long) query.getSingleResult();
}

/**
* 模糊查找專案名稱的記錄數
*
* @author f1410198
*/
public long sum(String caseName) {

/* 按專案名統計對象總行數 */
String jpql = "select count(c) from FlexCase c where c.caseName like '%"
+ caseName + "%'";

Query query = em.createQuery(jpql);

return (Long) query.getSingleResult();
}

/**
* 創建一個新的專案id
*
* @author f1410198
*/
public String createId() {

/* 查詢最大的ID */
Query query = em.createQuery("select max(c.id) from FlexCase c");

/* 最大ID值 */
String maxId = (String) query.getSingleResult();

/* 最大ID值的數字部份 */
String sub = maxId.substring(3);

/* 轉換成整型 */
long no = Long.parseLong(sub);

/* 自增1以獲得新的ID值整數值 */
no++; // 自增1

/* 將新的ID值轉換成字符型 */
String newId = String.valueOf(no);

/* 根據字符串長度加上首碼 */
switch (newId.length()) {
case 1:
newId = "SEQ000000" + newId;
break;
case 2:
newId = "SEQ00000" + newId;
break;
case 3:
newId = "SEQ0000" + newId;
break;
case 4:
newId = "SEQ000" + newId;
break;
case 5:
newId = "SEQ00" + newId;
break;
case 6:
newId = "SEQ0" + newId;
break;
default:
newId = "SEQ" + newId;
break;
}

return newId;
}

/**
* 根據字段id刪除FlexCase對象
*
* @author f1410198
*/
public boolean delete(String id) {
FlexCase flexCase = this.find(id);

if (flexCase == null) {
return false;
} else {
try {
em.remove(flexCase);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

return true;
}

/**
* 新增FlexCase對象
*
* @author f1410198
*/
public boolean insert(FlexCase flexCase) {
try {
em.persist(flexCase);
} catch (Exception e) {
e.printStackTrace();
return false;
}

return true;
}

/**
* 更新FlexCase對象
*
* @author f1410198
*/
public boolean update(FlexCase flexCase) {
if (flexCase == null) {
return false;
} else {
try {
em.merge(flexCase);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

return true;
}
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics