// ========================================================================
// 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 java.math.BigDecimal;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import zeroth.framework.enterprise.domain.PersistenceServiceAnnotation.TestExamplePersistenceService;
import zeroth.framework.enterprise.infra.persistence.PersistenceServiceFactory;
import zeroth.framework.enterprise.infra.persistence.PrimaryEntityManager;
import zeroth.framework.enterprise.infra.persistence.QueryPersistenceService;
/**
* 拡張データ永続化サービスのファクトリ
* @author nilcy
*/
public class PersistenceServiceProducer {
/** 基礎エンティティマネージャ */
@Inject
@PrimaryEntityManager
private EntityManager manager;
/** データ永続化サービスのファクトリ */
@Inject
private PersistenceServiceFactory factory;
/** コンストラクタ */
public PersistenceServiceProducer() {
}
/**
* テスト参照オブジェクトの拡張データ永続化サービスを作成
* @return テスト参照オブジェクトの拡張データ永続化サービス
*/
@Produces
@TestExamplePersistenceService
public QueryPersistenceService<TestExample, BigDecimal> createTestExamplePersistenceService() {
return factory.createQueryPersistenceService(manager, TestExample.class);
}
}