🎨 add java doc for AbstractCrudService.java and BaseRepositoryImpl.java

pull/98/head
ruibaby 2019-02-23 09:08:57 +08:00
parent c0598125b5
commit 8c6914fabf
2 changed files with 134 additions and 1 deletions

View File

@ -36,6 +36,13 @@ public class BaseRepositoryImpl<DOMAIN, ID> extends SimpleJpaRepository<DOMAIN,
this.entityManager = entityManager;
}
/**
* Finds all domain by id list and the specified sort.
*
* @param ids id list of domain must not be null
* @param sort the specified sort must not be null
* @return a list of domains
*/
@Override
public List<DOMAIN> findAllByIdIn(Iterable<ID> ids, Sort sort) {
Assert.notNull(ids, "The given Iterable of Id's must not be null!");
@ -58,6 +65,12 @@ public class BaseRepositoryImpl<DOMAIN, ID> extends SimpleJpaRepository<DOMAIN,
}
}
/**
* Deletes by id list.
*
* @param ids id list of domain must not be null
* @return number of rows affected
*/
@Override
public long deleteByIdIn(Iterable<ID> ids) {

View File

@ -21,7 +21,6 @@ import java.util.Optional;
*
* @param <DOMAIN> domain type
* @param <ID> id type
*
* @author johnniang
*/
public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOMAIN, ID> {
@ -52,11 +51,22 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[index];
}
/**
* List All
*
* @return List
*/
@Override
public List<DOMAIN> listAll() {
return repository.findAll();
}
/**
* List all by sort
*
* @param sort sort
* @return List
*/
@Override
public List<DOMAIN> listAll(Sort sort) {
Assert.notNull(sort, "Sort info must not be null");
@ -64,6 +74,12 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return repository.findAll(sort);
}
/**
* List all by pageable
*
* @param pageable pageable
* @return Page
*/
@Override
public Page<DOMAIN> listAll(Pageable pageable) {
Assert.notNull(pageable, "Pageable info must not be null");
@ -71,11 +87,24 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return repository.findAll(pageable);
}
/**
* List all by ids
*
* @param ids ids
* @return List
*/
@Override
public List<DOMAIN> listAllByIds(Collection<ID> ids) {
return CollectionUtils.isEmpty(ids) ? Collections.emptyList() : repository.findAllById(ids);
}
/**
* List all by ids and sort
*
* @param ids ids
* @param sort sort
* @return List
*/
@Override
public List<DOMAIN> listAllByIds(Collection<ID> ids, Sort sort) {
Assert.notNull(sort, "Sort info must not be null");
@ -83,6 +112,12 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return CollectionUtils.isEmpty(ids) ? Collections.emptyList() : repository.findAllByIdIn(ids, sort);
}
/**
* Fetch by id
*
* @param id id
* @return Optional
*/
@Override
public Optional<DOMAIN> fetchById(ID id) {
Assert.notNull(id, domainName + " id must not be null");
@ -90,16 +125,35 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return repository.findById(id);
}
/**
* Get by id
*
* @param id id
* @return DOMAIN
* @throws NotFoundException If the specified id does not exist
*/
@Override
public DOMAIN getById(ID id) {
return fetchById(id).orElseThrow(() -> new NotFoundException(domainName + " was not found"));
}
/**
* Gets domain of nullable by id.
*
* @param id id
* @return DOMAIN
*/
@Override
public DOMAIN getByIdOfNullable(ID id) {
return fetchById(id).orElse(null);
}
/**
* Exists by id.
*
* @param id id
* @return boolean
*/
@Override
public boolean existsById(ID id) {
Assert.notNull(id, domainName + " id must not be null");
@ -107,6 +161,12 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return repository.existsById(id);
}
/**
* Must exist by id, or throw NotFoundException.
*
* @param id id
* @throws NotFoundException If the specified id does not exist
*/
@Override
public void mustExistById(ID id) {
if (!existsById(id)) {
@ -114,11 +174,22 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
}
}
/**
* count all
*
* @return long
*/
@Override
public long count() {
return repository.count();
}
/**
* save by domain
*
* @param domain domain
* @return DOMAIN
*/
@Override
public DOMAIN create(DOMAIN domain) {
Assert.notNull(domain, domainName + " data must not be null");
@ -126,11 +197,23 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return repository.save(domain);
}
/**
* save by domains
*
* @param domains domains
* @return List
*/
@Override
public List<DOMAIN> createInBatch(Collection<DOMAIN> domains) {
return CollectionUtils.isEmpty(domains) ? Collections.emptyList() : repository.saveAll(domains);
}
/**
* Updates by domain
*
* @param domain domain
* @return DOMAIN
*/
@Override
public DOMAIN update(DOMAIN domain) {
Assert.notNull(domain, domainName + " data must not be null");
@ -138,11 +221,24 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return repository.saveAndFlush(domain);
}
/**
* Updates by domains
*
* @param domains domains
* @return List
*/
@Override
public List<DOMAIN> updateInBatch(Collection<DOMAIN> domains) {
return CollectionUtils.isEmpty(domains) ? Collections.emptyList() : repository.saveAll(domains);
}
/**
* Removes by id
*
* @param id id
* @return DOMAIN
* @throws NotFoundException If the specified id does not exist
*/
@Override
public DOMAIN removeById(ID id) {
// Get non null domain by id
@ -155,6 +251,12 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
return domain;
}
/**
* Removes by id if present.
*
* @param id id
* @return DOMAIN
*/
@Override
public DOMAIN removeByIdOfNullable(ID id) {
return fetchById(id).map(domain -> {
@ -163,6 +265,11 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
}).orElse(null);
}
/**
* Remove by domain
*
* @param domain domain
*/
@Override
public void remove(DOMAIN domain) {
Assert.notNull(domain, domainName + " data must not be null");
@ -170,6 +277,11 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
repository.delete(domain);
}
/**
* Remove by ids
*
* @param ids ids
*/
@Override
public void removeInBatch(Collection<ID> ids) {
if (CollectionUtils.isEmpty(ids)) {
@ -180,6 +292,11 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
repository.deleteByIdIn(ids);
}
/**
* Remove all by domains
*
* @param domains domains
*/
@Override
public void removeAll(Collection<DOMAIN> domains) {
if (CollectionUtils.isEmpty(domains)) {
@ -189,6 +306,9 @@ public abstract class AbstractCrudService<DOMAIN, ID> implements CrudService<DOM
repository.deleteInBatch(domains);
}
/**
* Remove all
*/
@Override
public void removeAll() {
repository.deleteAll();