Java 类javax.persistence.FlushModeType 实例源码
项目:mycore
文件:MCRCategoryDAOImpl.java
private static <T> T withoutFlush(EntityManager entityManager, boolean flushAtEnd,
Function<EntityManager, T> task) {
FlushModeType fm = entityManager.getFlushMode();
entityManager.setFlushMode(FlushModeType.COMMIT);
try {
T result = task.apply(entityManager);
entityManager.setFlushMode(fm);
if (flushAtEnd) {
entityManager.flush();
}
return result;
} catch (RuntimeException e) {
entityManager.setFlushMode(fm);
throw e;
}
}
项目:my-paper
文件:BaseDaoImpl.java
protected List<T> findList(CriteriaQuery<T> criteriaQuery, Integer first, Integer count, List<Filter> filters, List<Order> orders) {
Assert.notNull(criteriaQuery);
Assert.notNull(criteriaQuery.getSelection());
Assert.notEmpty(criteriaQuery.getRoots());
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
Root<T> root = getRoot(criteriaQuery);
addRestrictions(criteriaQuery, filters);
addOrders(criteriaQuery, orders);
if (criteriaQuery.getOrderList().isEmpty()) {
if (OrderEntity.class.isAssignableFrom(entityClass)) {
criteriaQuery.orderBy(criteriaBuilder.asc(root.get(OrderEntity.ORDER_PROPERTY_NAME)));
} else {
criteriaQuery.orderBy(criteriaBuilder.desc(root.get(OrderEntity.CREATE_DATE_PROPERTY_NAME)));
}
}
TypedQuery<T> query = entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT);
if (first != null) {
query.setFirstResult(first);
}
if (count != null) {
query.setMaxResults(count);
}
return query.getResultList();
}
项目:my-paper
文件:OrderDaoImpl.java
public BigDecimal getSalesAmount(Date beginDate, Date endDate) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<BigDecimal> criteriaQuery = criteriaBuilder.createQuery(BigDecimal.class);
Root<Order> root = criteriaQuery.from(Order.class);
criteriaQuery.select(criteriaBuilder.sum(root.<BigDecimal> get("amountPaid")));
Predicate restrictions = criteriaBuilder.conjunction();
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.equal(root.get("orderStatus"), OrderStatus.completed));
if (beginDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.greaterThanOrEqualTo(root.<Date> get("createDate"), beginDate));
}
if (endDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.lessThanOrEqualTo(root.<Date> get("createDate"), endDate));
}
criteriaQuery.where(restrictions);
return entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT).getSingleResult();
}
项目:my-paper
文件:OrderDaoImpl.java
public Integer getSalesVolume(Date beginDate, Date endDate) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Integer> criteriaQuery = criteriaBuilder.createQuery(Integer.class);
Root<Order> root = criteriaQuery.from(Order.class);
criteriaQuery.select(criteriaBuilder.sum(root.join("orderItems").<Integer> get("shippedQuantity")));
Predicate restrictions = criteriaBuilder.conjunction();
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.equal(root.get("orderStatus"), OrderStatus.completed));
if (beginDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.greaterThanOrEqualTo(root.<Date> get("createDate"), beginDate));
}
if (endDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.lessThanOrEqualTo(root.<Date> get("createDate"), endDate));
}
criteriaQuery.where(restrictions);
return entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT).getSingleResult();
}
项目:my-paper
文件:ProductCategoryDaoImpl.java
/**
* 清除商品属性值并删除
*
* @param productCategory
* 商品分类
*/
@Override
public void remove(ProductCategory productCategory) {
if (productCategory != null) {
StringBuffer jpql = new StringBuffer("update Product product set ");
for (int i = 0; i < Product.ATTRIBUTE_VALUE_PROPERTY_COUNT; i++) {
String propertyName = Product.ATTRIBUTE_VALUE_PROPERTY_NAME_PREFIX + i;
if (i == 0) {
jpql.append("product." + propertyName + " = null");
} else {
jpql.append(", product." + propertyName + " = null");
}
}
jpql.append(" where product.productCategory = :productCategory");
entityManager.createQuery(jpql.toString()).setFlushMode(FlushModeType.COMMIT).setParameter("productCategory", productCategory).executeUpdate();
super.remove(productCategory);
}
}
项目:my-paper
文件:ParameterGroupDaoImpl.java
/**
* 处理商品参数并删除
*
* @param parameterGroup
* 参数组
* @return 参数组
*/
@Override
public void remove(ParameterGroup parameterGroup) {
if (parameterGroup != null) {
for (int i = 0; i < parameterGroup.getParameters().size(); i++) {
Parameter parameter = parameterGroup.getParameters().get(i);
String jpql = "select product from Product product join product.parameterValue parameterValue where index(parameterValue) = :parameter";
List<Product> products = entityManager.createQuery(jpql, Product.class).setFlushMode(FlushModeType.COMMIT).setParameter("parameter", parameter).getResultList();
for (Product product : products) {
product.getParameterValue().remove(parameter);
if (i % 20 == 0) {
super.flush();
super.clear();
}
}
}
super.remove(super.merge(parameterGroup));
}
}
项目:my-paper
文件:MemberRankDaoImpl.java
/**
* 忽略默认、清除会员价并删除
*
* @param memberRank
* 会员等级
*/
@Override
public void remove(MemberRank memberRank) {
if (memberRank != null && !memberRank.getIsDefault()) {
String jpql = "select product from Product product join product.memberPrice memberPrice where index(memberPrice) = :memberRank";
List<Product> products = entityManager.createQuery(jpql, Product.class).setFlushMode(FlushModeType.COMMIT).setParameter("memberRank", memberRank).getResultList();
for (int i = 0; i < products.size(); i++) {
Product product = products.get(i);
product.getMemberPrice().remove(memberRank);
if (i % 20 == 0) {
super.flush();
super.clear();
}
}
super.remove(super.merge(memberRank));
}
}
项目:my-paper
文件:MemberDaoImpl.java
public List<Object[]> findPurchaseList(Date beginDate, Date endDate, Integer count) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> criteriaQuery = criteriaBuilder.createQuery(Object[].class);
Root<Member> member = criteriaQuery.from(Member.class);
Join<Product, Order> orders = member.join("orders");
criteriaQuery.multiselect(member.get("id"), member.get("username"), member.get("email"), member.get("point"), member.get("amount"), member.get("balance"), criteriaBuilder.sum(orders.<BigDecimal> get("amountPaid")));
Predicate restrictions = criteriaBuilder.conjunction();
if (beginDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.greaterThanOrEqualTo(orders.<Date> get("createDate"), beginDate));
}
if (endDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.lessThanOrEqualTo(orders.<Date> get("createDate"), endDate));
}
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.equal(orders.get("orderStatus"), OrderStatus.completed), criteriaBuilder.equal(orders.get("paymentStatus"), PaymentStatus.paid));
criteriaQuery.where(restrictions);
criteriaQuery.groupBy(member.get("id"), member.get("username"), member.get("email"), member.get("point"), member.get("amount"), member.get("balance"));
criteriaQuery.orderBy(criteriaBuilder.desc(criteriaBuilder.sum(orders.<BigDecimal> get("amountPaid"))));
TypedQuery<Object[]> query = entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT);
if (count != null && count >= 0) {
query.setMaxResults(count);
}
return query.getResultList();
}
项目:my-paper
文件:ProductDaoImpl.java
public List<Object[]> findSalesList(Date beginDate, Date endDate, Integer count) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> criteriaQuery = criteriaBuilder.createQuery(Object[].class);
Root<Product> product = criteriaQuery.from(Product.class);
Join<Product, OrderItem> orderItems = product.join("orderItems");
Join<Product, com.easyshopping.entity.Order> order = orderItems.join("order");
criteriaQuery.multiselect(product.get("id"), product.get("sn"), product.get("name"), product.get("fullName"), product.get("price"), criteriaBuilder.sum(orderItems.<Integer> get("quantity")), criteriaBuilder.sum(criteriaBuilder.prod(orderItems.<Integer> get("quantity"), orderItems.<BigDecimal> get("price"))));
Predicate restrictions = criteriaBuilder.conjunction();
if (beginDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.greaterThanOrEqualTo(order.<Date> get("createDate"), beginDate));
}
if (endDate != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.lessThanOrEqualTo(order.<Date> get("createDate"), endDate));
}
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.equal(order.get("orderStatus"), OrderStatus.completed), criteriaBuilder.equal(order.get("paymentStatus"), PaymentStatus.paid));
criteriaQuery.where(restrictions);
criteriaQuery.groupBy(product.get("id"), product.get("sn"), product.get("name"), product.get("fullName"), product.get("price"));
criteriaQuery.orderBy(criteriaBuilder.desc(criteriaBuilder.sum(criteriaBuilder.prod(orderItems.<Integer> get("quantity"), orderItems.<BigDecimal> get("price")))));
TypedQuery<Object[]> query = entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT);
if (count != null && count >= 0) {
query.setMaxResults(count);
}
return query.getResultList();
}
项目:jpasecurity
文件:AccessCheckTest.java
@Test
@Ignore("TODO replace persistence provider")
public void aliasRules() {
TestSecurityContext.authenticate(USER);
EntityManagerFactory factory = Persistence.createEntityManagerFactory("alias");
EntityManager entityManager = factory.createEntityManager();
EntityManager mock = (EntityManager)entityManager.getDelegate();
reset(mock);
String originalQuery = "SELECT c.text, SUM(c.id) AS cSum FROM Contact AS c "
+ "WHERE c.owner.name = :name GROUP BY c.text ORDER BY cSum";
// TODO check why the rule is applied twice
String filteredQuery = " SELECT c.text, SUM(c.id) AS cSum FROM Contact c "
+ "WHERE (c.owner.name = :name) AND (c.owner.name = 'user') "
+ "GROUP BY c.text ORDER BY cSum";
when(mock.isOpen()).thenReturn(true);
when(mock.getFlushMode()).thenReturn(FlushModeType.AUTO);
when(mock.createQuery(filteredQuery)).thenReturn(mock(Query.class));
entityManager.createQuery(originalQuery);
verify(mock).createQuery(filteredQuery);
}
项目:java-platform
文件:ProductRepositoryImpl.java
@Override
public List<Product> findByGoodsWithExcludes(Goods goods, Set<Product> excludes) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Product> criteriaQuery = criteriaBuilder.createQuery(Product.class);
Root<Product> root = criteriaQuery.from(Product.class);
criteriaQuery.select(root);
Predicate restrictions = criteriaBuilder.conjunction();
if (goods != null) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.equal(root.get("goods"), goods));
}
if (excludes != null && !excludes.isEmpty()) {
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.not(root.in(excludes)));
}
criteriaQuery.where(restrictions);
return entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT).getResultList();
}
项目:hazelcast-mapstore-postgres-cassandra
文件:HCPostgresWorkerTest.java
@BeforeClass
public void setUpClass() throws Exception {
entityManagerFactory = Persistence
.createEntityManagerFactory("postgres_test");
entityManager = entityManagerFactory.createEntityManager();
entityManager.setFlushMode(FlushModeType.COMMIT);
entityManager.clear();
tx = entityManager.getTransaction();
// provision daos
dao = new EntryEntityDao();
dao.setEntityManager(entityManager);
mapStore = new HazelcastMapStore(String.class, User.class, dao);
store = new MyHazelcastInstance(mapStore, Constants.POSTGRES_MAP_STORE);
worker = new HazelcastWorker(Constants.POSTGRES_MAP_STORE);
}
项目:edct-formbuilder
文件:FormElementDao.java
/**
* If the description list of a source element was changed,
* this ensures that the description(s) of its associated LinkElements is up-to-date.
*/
public void updateAllFormElementsWithDescriptionChanged(FormElement formElement) {
Iterator<Description> newDescriptionIterator = formElement.getDescriptionList().iterator();
while ( newDescriptionIterator.hasNext() )
{
Description newDescription = newDescriptionIterator.next();
if ( ! newDescription.isNew() )
{
Query query = em.createNativeQuery("update form_element set description = :desc from description d where form_element.link_id=:uuid and form_element.description = d.source_description_text and d.id = :id");
query.setParameter("desc", newDescription.getDescription() );
query.setParameter("uuid", formElement.isLink() && !formElement.isExternalQuestion() ? (( LinkElement )formElement).getSourceId() : formElement.getUuid() );
query.setParameter("id", newDescription.getId() );
query.setFlushMode(FlushModeType.COMMIT);
query.executeUpdate();
}
}
}
项目:jpa-caches
文件:PersistenceContextTest.java
@Test
public void shouldNotSaveEntityWithCommitFlush() {
Plane boeing = new Plane(6L, "boeing");
doInTransaction(() -> {
em.persist(boeing);
em.setFlushMode(FlushModeType.COMMIT);
em.createQuery("select p from Plane p").getResultList();
em.clear();
});
doInTransaction(() -> assertThat(em.find(Plane.class, 6L)).isNull());
}
项目:spring4-understanding
文件:AbstractContainerEntityManagerFactoryIntegrationTests.java
@SuppressWarnings({ "unused", "unchecked" })
public void testQueryNoPersonsShared() {
EntityManager em = SharedEntityManagerCreator.createSharedEntityManager(entityManagerFactory);
Query q = em.createQuery("select p from Person as p");
q.setFlushMode(FlushModeType.AUTO);
List<Person> people = q.getResultList();
try {
assertNull(q.getSingleResult());
fail("Should have thrown NoResultException");
}
catch (NoResultException ex) {
// expected
}
}
项目:my-paper
文件:FriendLinkDaoImpl.java
public List<FriendLink> findList(Type type) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<FriendLink> criteriaQuery = criteriaBuilder.createQuery(FriendLink.class);
Root<FriendLink> root = criteriaQuery.from(FriendLink.class);
criteriaQuery.select(root);
if (type != null) {
criteriaQuery.where(criteriaBuilder.equal(root.get("type"), type));
}
criteriaQuery.orderBy(criteriaBuilder.asc(root.get("order")));
return entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT).getResultList();
}
项目:my-paper
文件:DeliveryTemplateDaoImpl.java
public DeliveryTemplate findDefault() {
try {
String jpql = "select deliveryTemplate from DeliveryTemplate deliveryTemplate where deliveryTemplate.isDefault = true";
return entityManager.createQuery(jpql, DeliveryTemplate.class).setFlushMode(FlushModeType.COMMIT).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
项目:my-paper
文件:DeliveryTemplateDaoImpl.java
/**
* 处理默认并保存
*
* @param deliveryTemplate
* 快递单模板
*/
@Override
public void persist(DeliveryTemplate deliveryTemplate) {
Assert.notNull(deliveryTemplate);
if (deliveryTemplate.getIsDefault()) {
String jpql = "update DeliveryTemplate deliveryTemplate set deliveryTemplate.isDefault = false where deliveryTemplate.isDefault = true";
entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT).executeUpdate();
}
super.persist(deliveryTemplate);
}
项目:my-paper
文件:DeliveryTemplateDaoImpl.java
/**
* 处理默认并更新
*
* @param deliveryTemplate
* 快递单模板
* @return 快递单模板
*/
@Override
public DeliveryTemplate merge(DeliveryTemplate deliveryTemplate) {
Assert.notNull(deliveryTemplate);
if (deliveryTemplate.getIsDefault()) {
String jpql = "update DeliveryTemplate deliveryTemplate set deliveryTemplate.isDefault = false where deliveryTemplate.isDefault = true and deliveryTemplate != :deliveryTemplate";
entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT).setParameter("deliveryTemplate", deliveryTemplate).executeUpdate();
}
return super.merge(deliveryTemplate);
}
项目:my-paper
文件:SnDaoImpl.java
private long getLastValue(Type type) {
String jpql = "select sn from Sn sn where sn.type = :type";
Sn sn = entityManager.createQuery(jpql, Sn.class).setFlushMode(FlushModeType.COMMIT).setLockMode(LockModeType.PESSIMISTIC_WRITE).setParameter("type", type).getSingleResult();
long lastValue = sn.getLastValue();
sn.setLastValue(lastValue + 1);
entityManager.merge(sn);
return lastValue;
}
项目:my-paper
文件:CouponCodeDaoImpl.java
public boolean codeExists(String code) {
if (code == null) {
return false;
}
String jpql = "select count(*) from CouponCode couponCode where lower(couponCode.code) = lower(:code)";
Long count = entityManager.createQuery(jpql, Long.class).setFlushMode(FlushModeType.COMMIT).setParameter("code", code).getSingleResult();
return count > 0;
}
项目:my-paper
文件:CouponCodeDaoImpl.java
public CouponCode findByCode(String code) {
if (code == null) {
return null;
}
try {
String jpql = "select couponCode from CouponCode couponCode where lower(couponCode.code) = lower(:code)";
return entityManager.createQuery(jpql, CouponCode.class).setFlushMode(FlushModeType.COMMIT).setParameter("code", code).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
项目:my-paper
文件:ShippingDaoImpl.java
public Shipping findBySn(String sn) {
if (sn == null) {
return null;
}
String jpql = "select shipping from Shipping shipping where lower(shipping.sn) = lower(:sn)";
try {
return entityManager.createQuery(jpql, Shipping.class).setFlushMode(FlushModeType.COMMIT).setParameter("sn", sn).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
项目:my-paper
文件:TagDaoImpl.java
public List<Tag> findList(Type type) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Tag> criteriaQuery = criteriaBuilder.createQuery(Tag.class);
Root<Tag> root = criteriaQuery.from(Tag.class);
criteriaQuery.select(root);
if (type != null) {
criteriaQuery.where(criteriaBuilder.equal(root.get("type"), type));
}
criteriaQuery.orderBy(criteriaBuilder.asc(root.get("order")));
return entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT).getResultList();
}
项目:my-paper
文件:ReceiverDaoImpl.java
/**
* 保存并处理默认
*
* @param receiver
* 收货地址
*/
@Override
public void persist(Receiver receiver) {
Assert.notNull(receiver);
Assert.notNull(receiver.getMember());
if (receiver.getIsDefault()) {
String jpql = "update Receiver receiver set receiver.isDefault = false where receiver.member = :member and receiver.isDefault = true";
entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT).setParameter("member", receiver.getMember()).executeUpdate();
}
super.persist(receiver);
}
项目:my-paper
文件:ReceiverDaoImpl.java
/**
* 更新并处理默认
*
* @param receiver
* 收货地址
* @return 收货地址
*/
@Override
public Receiver merge(Receiver receiver) {
Assert.notNull(receiver);
Assert.notNull(receiver.getMember());
if (receiver.getIsDefault()) {
String jpql = "update Receiver receiver set receiver.isDefault = false where receiver.member = :member and receiver.isDefault = true and receiver != :receiver";
entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT).setParameter("member", receiver.getMember()).setParameter("receiver", receiver).executeUpdate();
}
return super.merge(receiver);
}
项目:my-paper
文件:ReviewDaoImpl.java
public boolean isReviewed(Member member, Product product) {
if (member == null || product == null) {
return false;
}
String jqpl = "select count(*) from Review review where review.member = :member and review.product = :product";
Long count = entityManager.createQuery(jqpl, Long.class).setFlushMode(FlushModeType.COMMIT).setParameter("member", member).setParameter("product", product).getSingleResult();
return count > 0;
}
项目:my-paper
文件:ReviewDaoImpl.java
public long calculateTotalScore(Product product) {
if (product == null) {
return 0L;
}
String jpql = "select sum(review.score) from Review review where review.product = :product and review.isShow = :isShow";
Long totalScore = entityManager.createQuery(jpql, Long.class).setFlushMode(FlushModeType.COMMIT).setParameter("product", product).setParameter("isShow", true).getSingleResult();
return totalScore != null ? totalScore : 0L;
}
项目:my-paper
文件:ReviewDaoImpl.java
public long calculateScoreCount(Product product) {
if (product == null) {
return 0L;
}
String jpql = "select count(*) from Review review where review.product = :product and review.isShow = :isShow";
return entityManager.createQuery(jpql, Long.class).setFlushMode(FlushModeType.COMMIT).setParameter("product", product).setParameter("isShow", true).getSingleResult();
}
项目:my-paper
文件:BaseDaoImpl.java
protected Page<T> findPage(CriteriaQuery<T> criteriaQuery, Pageable pageable) {
Assert.notNull(criteriaQuery);
Assert.notNull(criteriaQuery.getSelection());
Assert.notEmpty(criteriaQuery.getRoots());
if (pageable == null) {
pageable = new Pageable();
}
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
Root<T> root = getRoot(criteriaQuery);
addRestrictions(criteriaQuery, pageable);
addOrders(criteriaQuery, pageable);
if (criteriaQuery.getOrderList().isEmpty()) {
if (OrderEntity.class.isAssignableFrom(entityClass)) {
criteriaQuery.orderBy(criteriaBuilder.asc(root.get(OrderEntity.ORDER_PROPERTY_NAME)));
} else {
criteriaQuery.orderBy(criteriaBuilder.desc(root.get(OrderEntity.CREATE_DATE_PROPERTY_NAME)));
}
}
long total = count(criteriaQuery, null);
int totalPages = (int) Math.ceil((double) total / (double) pageable.getPageSize());
if (totalPages < pageable.getPageNumber()) {
pageable.setPageNumber(totalPages);
}
TypedQuery<T> query = entityManager.createQuery(criteriaQuery).setFlushMode(FlushModeType.COMMIT);
query.setFirstResult((pageable.getPageNumber() - 1) * pageable.getPageSize());
query.setMaxResults(pageable.getPageSize());
return new Page<T>(query.getResultList(), total, pageable);
}
项目:my-paper
文件:BaseDaoImpl.java
protected Long count(CriteriaQuery<T> criteriaQuery, List<Filter> filters) {
Assert.notNull(criteriaQuery);
Assert.notNull(criteriaQuery.getSelection());
Assert.notEmpty(criteriaQuery.getRoots());
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
addRestrictions(criteriaQuery, filters);
CriteriaQuery<Long> countCriteriaQuery = criteriaBuilder.createQuery(Long.class);
for (Root<?> root : criteriaQuery.getRoots()) {
Root<?> dest = countCriteriaQuery.from(root.getJavaType());
dest.alias(getAlias(root));
copyJoins(root, dest);
}
Root<?> countRoot = getRoot(countCriteriaQuery, criteriaQuery.getResultType());
countCriteriaQuery.select(criteriaBuilder.count(countRoot));
if (criteriaQuery.getGroupList() != null) {
countCriteriaQuery.groupBy(criteriaQuery.getGroupList());
}
if (criteriaQuery.getGroupRestriction() != null) {
countCriteriaQuery.having(criteriaQuery.getGroupRestriction());
}
if (criteriaQuery.getRestriction() != null) {
countCriteriaQuery.where(criteriaQuery.getRestriction());
}
return entityManager.createQuery(countCriteriaQuery).setFlushMode(FlushModeType.COMMIT).getSingleResult();
}
项目:my-paper
文件:OrderDaoImpl.java
public Order findBySn(String sn) {
if (sn == null) {
return null;
}
String jpql = "select orders from Order orders where lower(orders.sn) = lower(:sn)";
try {
return entityManager.createQuery(jpql, Order.class).setFlushMode(FlushModeType.COMMIT).setParameter("sn", sn).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
项目:my-paper
文件:AreaDaoImpl.java
public List<Area> findRoots(Integer count) {
String jpql = "select area from Area area where area.parent is null order by area.order asc";
TypedQuery<Area> query = entityManager.createQuery(jpql, Area.class).setFlushMode(FlushModeType.COMMIT);
if (count != null) {
query.setMaxResults(count);
}
return query.getResultList();
}
项目:my-paper
文件:DeliveryCenterDaoImpl.java
public DeliveryCenter findDefault() {
try {
String jpql = "select deliveryCenter from DeliveryCenter deliveryCenter where deliveryCenter.isDefault = true";
return entityManager.createQuery(jpql, DeliveryCenter.class).setFlushMode(FlushModeType.COMMIT).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
项目:my-paper
文件:DeliveryCenterDaoImpl.java
/**
* 处理默认并保存
*
* @param deliveryCenter
* 发货点
*/
@Override
public void persist(DeliveryCenter deliveryCenter) {
Assert.notNull(deliveryCenter);
if (deliveryCenter.getIsDefault()) {
String jpql = "update DeliveryCenter deliveryCenter set deliveryCenter.isDefault = false where deliveryCenter.isDefault = true";
entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT).executeUpdate();
}
super.persist(deliveryCenter);
}
项目:my-paper
文件:DeliveryCenterDaoImpl.java
/**
* 处理默认并更新
*
* @param deliveryCenter
* 发货点
* @return 发货点
*/
@Override
public DeliveryCenter merge(DeliveryCenter deliveryCenter) {
Assert.notNull(deliveryCenter);
if (deliveryCenter.getIsDefault()) {
String jpql = "update DeliveryCenter deliveryCenter set deliveryCenter.isDefault = false where deliveryCenter.isDefault = true and deliveryCenter != :deliveryCenter";
entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT).setParameter("deliveryCenter", deliveryCenter).executeUpdate();
}
return super.merge(deliveryCenter);
}
项目:my-paper
文件:PluginConfigDaoImpl.java
public boolean pluginIdExists(String pluginId) {
if (pluginId == null) {
return false;
}
String jpql = "select count(*) from PluginConfig pluginConfig where pluginConfig.pluginId = :pluginId";
Long count = entityManager.createQuery(jpql, Long.class).setFlushMode(FlushModeType.COMMIT).setParameter("pluginId", pluginId).getSingleResult();
return count > 0;
}
项目:my-paper
文件:PluginConfigDaoImpl.java
public PluginConfig findByPluginId(String pluginId) {
if (pluginId == null) {
return null;
}
try {
String jpql = "select pluginConfig from PluginConfig pluginConfig where pluginConfig.pluginId = :pluginId";
return entityManager.createQuery(jpql, PluginConfig.class).setFlushMode(FlushModeType.COMMIT).setParameter("pluginId", pluginId).getSingleResult();
} catch (NoResultException e) {
return null;
}
}
项目:my-paper
文件:ProductCategoryDaoImpl.java
public List<ProductCategory> findRoots(Integer count) {
String jpql = "select productCategory from ProductCategory productCategory where productCategory.parent is null order by productCategory.order asc";
TypedQuery<ProductCategory> query = entityManager.createQuery(jpql, ProductCategory.class).setFlushMode(FlushModeType.COMMIT);
if (count != null) {
query.setMaxResults(count);
}
return query.getResultList();
}
项目:my-paper
文件:ProductCategoryDaoImpl.java
public List<ProductCategory> findParents(ProductCategory productCategory, Integer count) {
if (productCategory == null || productCategory.getParent() == null) {
return Collections.<ProductCategory> emptyList();
}
String jpql = "select productCategory from ProductCategory productCategory where productCategory.id in (:ids) order by productCategory.grade asc";
TypedQuery<ProductCategory> query = entityManager.createQuery(jpql, ProductCategory.class).setFlushMode(FlushModeType.COMMIT).setParameter("ids", productCategory.getTreePaths());
if (count != null) {
query.setMaxResults(count);
}
return query.getResultList();
}