// ========================================================================
// 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.infra.persistence;
import java.io.Serializable;
import javax.enterprise.inject.Default;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import zeroth.framework.enterprise.shared.Persistable;
/**
* 標準データ永続化サービス(JPA2/JPQL)
* <p>
* {@link SimplePersistenceServiceImpl} へJava標準クエリ(JPQL)を追加したサービスである。
* </p>
* @param <E> エンティティ型
* @param <ID> 識別子オブジェクト型
* @since JPA 1.0
* @author nilcy
*/
@Default
public class StandardPersistenceServiceImpl<E extends Persistable<ID>, ID extends Serializable>
extends SimplePersistenceServiceImpl<E, ID> implements StandardPersistenceService<E, ID> {
/** 識別番号 */
private static final long serialVersionUID = -1029454631523751121L;
/**
* コンストラクタ
* @param manager エンティティマネージャ
* @param clazz エンティティクラス
*/
public StandardPersistenceServiceImpl(final EntityManager manager, final Class<E> clazz) {
super(manager, clazz);
}
/** {@inheritDoc} */
@Override
public TypedQuery<E> createQuery(final String jpql) {
return manager.createQuery(jpql, super.clazz);
}
/** {@inheritDoc} */
@Override
public TypedQuery<E> createNamedQuery(final String queryName) {
return manager.createNamedQuery(queryName, super.clazz);
}
}