// ========================================================================
// 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.persistence.Query;
import zeroth.framework.enterprise.shared.Persistable;
/**
* 原始データ永続化サービスI/F(JPA2/NativeQuery)
* @param <E> エンティティ型
* @param <ID> 識別子オブジェクト型
* @author nilcy
*/
public interface NativePersistenceService<E extends Persistable<ID>, ID extends Serializable>
extends SimplePersistenceService<E, ID> {
/**
* クエリの作成
* @param sql SQL
* @return クエリ
*/
Query createNativeQuery(final String sql);
/**
* クエリの作成
* @param sql SQL
* @param resultClass 結果格納クラス
* @return クエリ
*/
Query createNativeQuery(final String sql, final Class<?> resultClass);
/**
* クエリの作成
* @param sql SQL
* @param resultSetMappingName 結果セットマッピング名
* @return クエリ
*/
Query createNativeQuery(final String sql, final String resultSetMappingName);
}