Spring Dtata JPADOCWord格式文档下载.docx
- 文档编号:7901728
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:17
- 大小:88.74KB
Spring Dtata JPADOCWord格式文档下载.docx
《Spring Dtata JPADOCWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《Spring Dtata JPADOCWord格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。
@Transactional(readOnly=true)
publicclassSimpleJpaRepository<
T,IDextendsSerializable>
implementsJpaRepository<
JpaSpecificationExecutor<
T>
privatefinalJpaEntityInformation<
T,?
>
entityInformation;
privatefinalEntityManagerem;
privatefinalPersistenceProviderprovider;
privateLockMetadataProviderlockMetadataProvider;
/**
*Createsanew{@linkSimpleJpaRepository}tomanageobjectsofthegiven{@linkJpaEntityInformation}.
*
*@paramentityInformationmustnotbe{@literalnull}.
*@paramentityManagermustnotbe{@literalnull}.
*/
publicSimpleJpaRepository(JpaEntityInformation<
entityInformation,EntityManagerentityManager){
Assert.notNull(entityInformation);
Assert.notNull(entityManager);
this.entityInformation=entityInformation;
this.em=entityManager;
this.provider=PersistenceProvider.fromEntityManager(entityManager);
}
*Createsanew{@linkSimpleJpaRepository}tomanageobjectsofthegivendomaintype.
*@paramdomainClassmustnotbe{@literalnull}.
*@paramemmustnotbe{@literalnull}.
publicSimpleJpaRepository(Class<
domainClass,EntityManagerem){
this(JpaEntityInformationSupport.getMetadata(domainClass,em),em);
*Configuresacustom{@linkLockMetadataProvider}tobeusedtodetect{@linkLockModeType}stobeappliedto
*queries.
*@paramlockMetadataProvider
publicvoidsetLockMetadataProvider(LockMetadataProviderlockMetadataProvider){
this.lockMetadataProvider=lockMetadataProvider;
privateClass<
getDomainClass(){
returnentityInformation.getJavaType();
privateStringgetDeleteAllQueryString(){
returngetQueryString(DELETE_ALL_QUERY_STRING,entityInformation.getEntityName());
privateStringgetCountQueryString(){
StringcountQuery=String.format(COUNT_QUERY_STRING,provider.getCountQueryPlaceholder(),"
%s"
);
returngetQueryString(countQuery,entityInformation.getEntityName());
/*
*(non-Javadoc)
*@seeorg.springframework.data.repository.CrudRepository#delete(java.io.Serializable)
@Transactional
publicvoiddelete(IDid){
Assert.notNull(id,"
Thegivenidmustnotbenull!
"
if(!
exists(id)){
thrownewEmptyResultDataAccessException(String.format("
No%sentitywithid%sexists!
entityInformation.getJavaType(),id),1);
}
delete(findOne(id));
*@seeorg.springframework.data.repository.CrudRepository#delete(java.lang.Object)
publicvoiddelete(Tentity){
Assert.notNull(entity,"
Theentitymustnotbenull!
em.remove(em.contains(entity)?
entity:
em.merge(entity));
*@seeorg.springframework.data.repository.CrudRepository#delete(java.lang.Iterable)
publicvoiddelete(Iterable<
?
extendsT>
entities){
Assert.notNull(entities,"
ThegivenIterableofentitiesnotbenull!
for(Tentity:
delete(entity);
*@seeorg.springframework.data.jpa.repository.JpaRepository#deleteInBatch(java.lang.Iterable)
publicvoiddeleteInBatch(Iterable<
entities.iterator().hasNext()){
return;
applyAndBind(getQueryString(DELETE_ALL_QUERY_STRING,entityInformation.getEntityName()),entities,em)
.executeUpdate();
*@seeorg.springframework.data.repository.Repository#deleteAll()
publicvoiddeleteAll(){
for(Telement:
findAll()){
delete(element);
/*
*@seeorg.springframework.data.jpa.repository.JpaRepository#deleteAllInBatch()
publicvoiddeleteAllInBatch(){
em.createQuery(getDeleteAllQueryString()).executeUpdate();
*@see
*org.springframework.data.repository.Repository#readById(java.io.Serializable
*)
publicTfindOne(IDid){
returnem.find(getDomainClass(),id);
*@seeorg.springframework.data.repository.CrudRepository#exists(java.io.Serializable)
publicbooleanexists(IDid){
if(entityInformation.getIdAttribute()!
=null){
Stringplaceholder=provider.getCountQueryPlaceholder();
StringentityName=entityInformation.getEntityName();
Iterable<
String>
idAttributeNames=entityInformation.getIdAttributeNames();
StringexistsQuery=QueryUtils.getExistsQueryString(entityName,placeholder,idAttributeNames);
TypedQuery<
Long>
query=em.createQuery(existsQuery,Long.class);
if(entityInformation.hasCompositeId()){
for(StringidAttributeName:
idAttributeNames){
query.setParameter(idAttributeName,entityInformation.getCompositeIdAttributeValue(id,idAttributeName));
}
}else{
query.setParameter(idAttributeNames.iterator().next(),id);
}
returnquery.getSingleResult()==1L;
}else{
returnfindOne(id)!
=null;
*@seeorg.springframework.data.jpa.repository.JpaRepository#findAll()
publicList<
findAll(){
returngetQuery(null,(Sort)null).getResultList();
*@seeorg.springframework.data.repository.CrudRepository#findAll(ID[])
findAll(Iterable<
ID>
ids){
returngetQuery(newSpecification<
(){
publicPredicatetoPredicate(Root<
root,CriteriaQuery<
query,CriteriaBuildercb){
Path<
path=root.get(entityInformation.getIdAttribute());
returnpath.in(cb.parameter(Iterable.class,"
ids"
));
},(Sort)null).setParameter("
ids).getResultList();
*@seeorg.springframework.data.jpa.repository.JpaRepository#findAll(org.springframework.data.domain.Sort)
findAll(Sortsort){
returngetQuery(null,sort).getResultList();
*@seeorg.springframework.data.repository.PagingAndSortingRepository#findAll(org.springframework.data.domain.Pageable)
publicPage<
findAll(Pageablepageable){
if(null==pageable){
returnnewPageImpl<
(findAll());
returnfindAll(null,pageable);
*@seeorg.springframework.data.jpa.repository.JpaSpecificationExecutor#findOne(org.springframework.data.jpa.domain.Specification)
publicTfindOne(Specification<
spec){
try{
returngetQuery(spec,(Sort)null).getSingleResult();
}catch(NoResultExceptione){
returnnull;
*@seeorg.springframework.data.jpa.repository.JpaSpecificationExecutor#findAll(org.springframework.data.jpa.domain.Specification)
findAll(Specification<
returngetQuery(spec,(Sort)null).getResultList();
*@seeorg.springframework.data.jpa.repository.JpaSpecificationExecutor#findAll(org.springframework.data.jpa.domain.Specification,org.springframework.data.domain.Pageable)
spec,Pageablepageable){
TypedQuery<
query=getQuery(spec,pageable);
returnpageable==null?
newPageImpl<
(query.getResultList()):
readPage(query,pageable,spec);
*@seeorg.springframework.data.jpa.repository.JpaSpecificationExecutor#findAll(org.springframework.data.jpa.domain.Specification,org.springframework.data.domain.Sort)
spec,Sortsort){
returngetQuery(spec,sort).getResultList();
*@seeorg.springframework.data.repository.CrudRepository#count()
publiclongcount(){
returnem.createQuery(getCountQueryString(),Long.class).getSingleResult();
*@seeorg.springframework.data.jpa.repository.JpaSpecificationExecutor#count(org.springframework.data.jpa.domain.Specification)
publiclongcount(Specification<
returngetCountQuery(spec).getSingleResult();
*@seeorg.springframework.data.repository.CrudRepository#save(java.lang.Object)
public<
SextendsT>
Ssave(Sentity){
if(entityInformation.isNew(entity)){
em.persist(entity);
returnentity;
returnem.merge(entity);
*@seeorg.springframework.data.jpa.repository.JpaRepository#saveAndFlush(java.lang.Object)
publicTsaveAndFlush(Tentity){
Tresult=save(entity);
flush();
returnresult;
*@seeorg.springframework.data.jpa.repository.JpaRepository#save(java.lang.Iterable)
List<
S>
save(Iterable<
List<
result=newArrayList<
();
if(entities==null){
returnresult;
for(Sentity:
result.add(save(entity));
*@seeorg.springframework.data.jpa.repository.JpaRepository#flush()
publicvoidflush(){
em.flush();
*Readsthegiven{@linkTypedQuery}intoa{@linkPage}applyingthegiven{@linkPageable}and
*{@linkSpecification}.
*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring Dtata JPADOC