1 package net.sumaris.core.dao.technical.jpa;
2
3 /*-
4 * #%L
5 * SUMARiS:: Core shared
6 * %%
7 * Copyright (C) 2018 - 2019 SUMARiS Consortium
8 * %%
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation, either version 3 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this program. If not, see
21 * <http://www.gnu.org/licenses/gpl-3.0.html>.
22 * #L%
23 */
24
25 import org.springframework.data.jpa.repository.JpaRepository;
26 import org.springframework.data.repository.NoRepositoryBean;
27
28 import javax.persistence.LockModeType;
29 import java.io.Serializable;
30
31 /**
32 * @author Benoit Lavenier <benoit.lavenier@e-is.pro>*
33 */
34 @NoRepositoryBean
35 public interface SumarisJpaRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
36
37 <C extends Serializable> C load(Class<C> clazz, Serializable id);
38
39 <C extends Serializable> C get(Class<? extends C> clazz, Serializable id);
40
41 <C extends Serializable> C get(Class<? extends C> clazz, Serializable id, LockModeType lockModeType);
42
43 T createEntity();
44 }