// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.framework.enterprise.domain;
import static zeroth.framework.enterprise.domain.TestExample_.*;
import java.math.BigDecimal;
import javax.enterprise.inject.Default;
import javax.inject.Inject;
import javax.persistence.criteria.Predicate;
import zeroth.framework.enterprise.domain.PersistenceServiceAnnotation.TestExamplePersistenceService;
import zeroth.framework.enterprise.infra.persistence.QueryPersistenceService;
/**
* テストオブジェクト基本リポジトリ
* @author nilcy
*/
@Default
public class TestExampleQueryRepository extends
AbstractQueryRepositoryImpl<TestExample, BigDecimal, TestExampleValue> {
/** 製品番号 */
private static final long serialVersionUID = 5224122483123731291L;
/** 拡張データ永続化サービス */
@Inject
@TestExamplePersistenceService
private QueryPersistenceService<TestExample, BigDecimal> service;
/** {@inheritDoc} */
@Override
protected QueryPersistenceService<TestExample, BigDecimal> getPersistenceService() {
return service;
}
/**
* {@inheritDoc}
* <p>
* 検索条件は、コードとする。
* </p>
*/
@Override
protected Predicate expression(final TestExampleValue filter) {
return getPersistenceService().builder().equal(getPersistenceService().root().get(code),
filter.getCode());
}
}