T
- the type of the entity to handleID
- the type of the entity's identifier@Repository @Transactional(readOnly=true) public class SimpleJpaRepository<T,ID> extends Object implements JpaRepositoryImplementation<T,ID>
CrudRepository
interface. This will offer
you a more sophisticated interface than the plain EntityManager
.Constructor and Description |
---|
SimpleJpaRepository(Class<T> domainClass,
javax.persistence.EntityManager em)
Creates a new
SimpleJpaRepository to manage objects of the given domain type. |
SimpleJpaRepository(JpaEntityInformation<T,?> entityInformation,
javax.persistence.EntityManager entityManager)
Creates a new
SimpleJpaRepository to manage objects of the given JpaEntityInformation . |
Modifier and Type | Method and Description |
---|---|
long |
count() |
<S extends T> |
count(org.springframework.data.domain.Example<S> example) |
long |
count(Specification<T> spec)
Returns the number of instances that the given
Specification will return. |
void |
delete(T entity) |
void |
deleteAll() |
void |
deleteAll(Iterable<? extends T> entities) |
void |
deleteAllById(Iterable<? extends ID> ids) |
void |
deleteAllByIdInBatch(Iterable<ID> ids)
Deletes the entities identified by the given ids using a single query.
|
void |
deleteAllInBatch()
Deletes all entities in a batch call.
|
void |
deleteAllInBatch(Iterable<T> entities)
Deletes the given entities in a batch which means it will create a single query.
|
void |
deleteById(ID id) |
<S extends T> |
exists(org.springframework.data.domain.Example<S> example) |
boolean |
exists(Specification<T> spec)
Checks whether the data store contains elements that match the given
Specification . |
boolean |
existsById(ID id) |
List<T> |
findAll() |
<S extends T> |
findAll(org.springframework.data.domain.Example<S> example) |
<S extends T> |
findAll(org.springframework.data.domain.Example<S> example,
org.springframework.data.domain.Pageable pageable) |
<S extends T> |
findAll(org.springframework.data.domain.Example<S> example,
org.springframework.data.domain.Sort sort) |
org.springframework.data.domain.Page<T> |
findAll(org.springframework.data.domain.Pageable pageable) |
List<T> |
findAll(org.springframework.data.domain.Sort sort) |
List<T> |
findAll(Specification<T> spec)
Returns all entities matching the given
Specification . |
org.springframework.data.domain.Page<T> |
findAll(Specification<T> spec,
org.springframework.data.domain.Pageable pageable)
Returns a
Page of entities matching the given Specification . |
List<T> |
findAll(Specification<T> spec,
org.springframework.data.domain.Sort sort)
Returns all entities matching the given
Specification and Sort . |
List<T> |
findAllById(Iterable<ID> ids) |
<S extends T,R> |
findBy(org.springframework.data.domain.Example<S> example,
Function<org.springframework.data.repository.query.FluentQuery.FetchableFluentQuery<S>,R> queryFunction) |
Optional<T> |
findById(ID id) |
<S extends T> |
findOne(org.springframework.data.domain.Example<S> example) |
Optional<T> |
findOne(Specification<T> spec)
Returns a single entity matching the given
Specification or Optional.empty() if none found. |
void |
flush()
Flushes all pending changes to the database.
|
T |
getById(ID id)
Deprecated.
|
protected <S extends T> |
getCountQuery(Specification<S> spec,
Class<S> domainClass)
Creates a new count query for the given
Specification . |
protected javax.persistence.TypedQuery<Long> |
getCountQuery(Specification<T> spec)
Deprecated.
override
getCountQuery(Specification, Class) instead |
protected Class<T> |
getDomainClass() |
T |
getOne(ID id)
Deprecated.
|
protected <S extends T> |
getQuery(Specification<S> spec,
Class<S> domainClass,
org.springframework.data.domain.Pageable pageable)
Creates a new
TypedQuery from the given Specification . |
protected <S extends T> |
getQuery(Specification<S> spec,
Class<S> domainClass,
org.springframework.data.domain.Sort sort)
|
protected javax.persistence.TypedQuery<T> |
getQuery(Specification<T> spec,
org.springframework.data.domain.Pageable pageable)
Creates a new
TypedQuery from the given Specification . |
protected javax.persistence.TypedQuery<T> |
getQuery(Specification<T> spec,
org.springframework.data.domain.Sort sort)
|
protected QueryHints |
getQueryHints()
Returns
QueryHints with the query hints based on the current CrudMethodMetadata and potential
EntityGraph information. |
T |
getReferenceById(ID id)
Returns a reference to the entity with the given identifier.
|
protected CrudMethodMetadata |
getRepositoryMethodMetadata() |
protected <S extends T> |
readPage(javax.persistence.TypedQuery<S> query,
Class<S> domainClass,
org.springframework.data.domain.Pageable pageable,
Specification<S> spec)
|
protected org.springframework.data.domain.Page<T> |
readPage(javax.persistence.TypedQuery<T> query,
org.springframework.data.domain.Pageable pageable,
Specification<T> spec)
Deprecated.
|
<S extends T> |
save(S entity) |
<S extends T> |
saveAll(Iterable<S> entities) |
<S extends T> |
saveAllAndFlush(Iterable<S> entities)
Saves all entities and flushes changes instantly.
|
<S extends T> |
saveAndFlush(S entity)
Saves an entity and flushes changes instantly.
|
void |
setEscapeCharacter(EscapeCharacter escapeCharacter)
Configures the
EscapeCharacter to be used with the repository. |
void |
setRepositoryMethodMetadata(CrudMethodMetadata crudMethodMetadata)
Configures a custom
CrudMethodMetadata to be used to detect LockModeType s and query hints to be
applied to queries. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
deleteInBatch
public SimpleJpaRepository(JpaEntityInformation<T,?> entityInformation, javax.persistence.EntityManager entityManager)
SimpleJpaRepository
to manage objects of the given JpaEntityInformation
.entityInformation
- must not be null.entityManager
- must not be null.public SimpleJpaRepository(Class<T> domainClass, javax.persistence.EntityManager em)
SimpleJpaRepository
to manage objects of the given domain type.domainClass
- must not be null.em
- must not be null.public void setRepositoryMethodMetadata(CrudMethodMetadata crudMethodMetadata)
CrudMethodMetadata
to be used to detect LockModeType
s and query hints to be
applied to queries.setRepositoryMethodMetadata
in interface JpaRepositoryImplementation<T,ID>
crudMethodMetadata
- public void setEscapeCharacter(EscapeCharacter escapeCharacter)
JpaRepositoryImplementation
EscapeCharacter
to be used with the repository.setEscapeCharacter
in interface JpaRepositoryImplementation<T,ID>
escapeCharacter
- Must not be null.@Nullable protected CrudMethodMetadata getRepositoryMethodMetadata()
@Transactional public void deleteById(ID id)
@Transactional public void delete(T entity)
@Transactional public void deleteAllById(Iterable<? extends ID> ids)
@Transactional public void deleteAllByIdInBatch(Iterable<ID> ids)
JpaRepository
EntityManager
before calling this method.deleteAllByIdInBatch
in interface JpaRepository<T,ID>
ids
- the ids of the entities to be deleted. Must not be null.@Transactional public void deleteAll(Iterable<? extends T> entities)
@Transactional public void deleteAllInBatch(Iterable<T> entities)
JpaRepository
EntityManager
before calling this
method.deleteAllInBatch
in interface JpaRepository<T,ID>
entities
- entities to be deleted. Must not be null.@Transactional public void deleteAll()
@Transactional public void deleteAllInBatch()
JpaRepository
deleteAllInBatch
in interface JpaRepository<T,ID>
protected QueryHints getQueryHints()
QueryHints
with the query hints based on the current CrudMethodMetadata
and potential
EntityGraph
information.@Deprecated public T getOne(ID id)
JpaRepository
EntityNotFoundException
on first access. Some of them will reject invalid identifiers
immediately.getOne
in interface JpaRepository<T,ID>
id
- must not be null.for details on when an exception is thrown.
@Deprecated public T getById(ID id)
JpaRepository
EntityNotFoundException
on first access. Some of them will reject invalid identifiers
immediately.getById
in interface JpaRepository<T,ID>
id
- must not be null.for details on when an exception is thrown.
public T getReferenceById(ID id)
JpaRepository
EntityNotFoundException
on first access. Some of them will reject invalid identifiers
immediately.getReferenceById
in interface JpaRepository<T,ID>
id
- must not be null.for details on when an exception is thrown.
public boolean existsById(ID id)
public List<T> findAllById(Iterable<ID> ids)
findAllById
in interface JpaRepository<T,ID>
findAllById
in interface org.springframework.data.repository.CrudRepository<T,ID>
public org.springframework.data.domain.Page<T> findAll(org.springframework.data.domain.Pageable pageable)
public Optional<T> findOne(@Nullable Specification<T> spec)
JpaSpecificationExecutor
Specification
or Optional.empty()
if none found.findOne
in interface JpaSpecificationExecutor<T>
spec
- can be null.public List<T> findAll(@Nullable Specification<T> spec)
JpaSpecificationExecutor
Specification
.findAll
in interface JpaSpecificationExecutor<T>
spec
- can be null.public org.springframework.data.domain.Page<T> findAll(@Nullable Specification<T> spec, org.springframework.data.domain.Pageable pageable)
JpaSpecificationExecutor
Page
of entities matching the given Specification
.findAll
in interface JpaSpecificationExecutor<T>
spec
- can be null.pageable
- must not be null.public List<T> findAll(@Nullable Specification<T> spec, org.springframework.data.domain.Sort sort)
JpaSpecificationExecutor
Specification
and Sort
.findAll
in interface JpaSpecificationExecutor<T>
spec
- can be null.sort
- must not be null.public <S extends T> Optional<S> findOne(org.springframework.data.domain.Example<S> example)
findOne
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public <S extends T> long count(org.springframework.data.domain.Example<S> example)
count
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public <S extends T> boolean exists(org.springframework.data.domain.Example<S> example)
exists
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public boolean exists(Specification<T> spec)
JpaSpecificationExecutor
Specification
.exists
in interface JpaSpecificationExecutor<T>
spec
- the Specification
to use for the existence check. Must not be null.true
if the data store contains elements that match the given Specification
otherwise
false
.public <S extends T> List<S> findAll(org.springframework.data.domain.Example<S> example)
findAll
in interface JpaRepository<T,ID>
findAll
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public <S extends T> List<S> findAll(org.springframework.data.domain.Example<S> example, org.springframework.data.domain.Sort sort)
findAll
in interface JpaRepository<T,ID>
findAll
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public <S extends T> org.springframework.data.domain.Page<S> findAll(org.springframework.data.domain.Example<S> example, org.springframework.data.domain.Pageable pageable)
findAll
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public <S extends T,R> R findBy(org.springframework.data.domain.Example<S> example, Function<org.springframework.data.repository.query.FluentQuery.FetchableFluentQuery<S>,R> queryFunction)
findBy
in interface org.springframework.data.repository.query.QueryByExampleExecutor<T>
public long count()
public long count(@Nullable Specification<T> spec)
JpaSpecificationExecutor
Specification
will return.count
in interface JpaSpecificationExecutor<T>
spec
- the Specification
to count instances for. Can be null.@Transactional public <S extends T> S save(S entity)
@Transactional public <S extends T> S saveAndFlush(S entity)
JpaRepository
saveAndFlush
in interface JpaRepository<T,ID>
entity
- entity to be saved. Must not be null.@Transactional public <S extends T> List<S> saveAll(Iterable<S> entities)
@Transactional public <S extends T> List<S> saveAllAndFlush(Iterable<S> entities)
JpaRepository
saveAllAndFlush
in interface JpaRepository<T,ID>
entities
- entities to be saved. Must not be null.@Transactional public void flush()
JpaRepository
flush
in interface JpaRepository<T,ID>
@Deprecated protected org.springframework.data.domain.Page<T> readPage(javax.persistence.TypedQuery<T> query, org.springframework.data.domain.Pageable pageable, @Nullable Specification<T> spec)
readPage(TypedQuery, Class, Pageable, Specification)
insteadquery
- must not be null.spec
- can be null.pageable
- must not be null.protected <S extends T> org.springframework.data.domain.Page<S> readPage(javax.persistence.TypedQuery<S> query, Class<S> domainClass, org.springframework.data.domain.Pageable pageable, @Nullable Specification<S> spec)
query
- must not be null.domainClass
- must not be null.spec
- can be null.pageable
- can be null.protected javax.persistence.TypedQuery<T> getQuery(@Nullable Specification<T> spec, org.springframework.data.domain.Pageable pageable)
TypedQuery
from the given Specification
.spec
- can be null.pageable
- must not be null.protected <S extends T> javax.persistence.TypedQuery<S> getQuery(@Nullable Specification<S> spec, Class<S> domainClass, org.springframework.data.domain.Pageable pageable)
TypedQuery
from the given Specification
.spec
- can be null.domainClass
- must not be null.pageable
- must not be null.protected javax.persistence.TypedQuery<T> getQuery(@Nullable Specification<T> spec, org.springframework.data.domain.Sort sort)
spec
- can be null.sort
- must not be null.protected <S extends T> javax.persistence.TypedQuery<S> getQuery(@Nullable Specification<S> spec, Class<S> domainClass, org.springframework.data.domain.Sort sort)
spec
- can be null.domainClass
- must not be null.sort
- must not be null.@Deprecated protected javax.persistence.TypedQuery<Long> getCountQuery(@Nullable Specification<T> spec)
getCountQuery(Specification, Class)
insteadSpecification
.spec
- can be null.protected <S extends T> javax.persistence.TypedQuery<Long> getCountQuery(@Nullable Specification<S> spec, Class<S> domainClass)
Specification
.spec
- can be null.domainClass
- must not be null.Copyright © 2011–2023 Pivotal Software, Inc.. All rights reserved.