Đối tượng truy cập dữ liệu (DAO) trong Java

Mùa xuân JPA DAO

Ví dụ, chúng tôi có một số nhóm thực thể.

Đối với thực thể này, chúng tôi tạo kho lưu trữ GroupRep repository.

public interface GroupRepository extends JpaRepository<Group, Long> { }

Sau đó, chúng ta cần tạo một lớp dịch vụ mà chúng ta sẽ sử dụng kho lưu trữ này.

public interface Service<T, ID> { T save(T entity); void deleteById(ID id); List<T> findAll(); T getOne(ID id); T editEntity(T entity); Optional<T> findById(ID id); } public abstract class AbstractService<T, ID, R extends JpaRepository<T, ID>> implements Service<T, ID> { private final R repository; protected AbstractService(R repository) { besttaichinh.comsitory = repository; } @Override public T save(T entity) { return besttaichinh.com(entity); } @Override public void deleteById(ID id) { besttaichinh.comteById(id); } @Override public List<T> findAll() { return besttaichinh.comAll(); } @Override public T getOne(ID id) { return besttaichinh.comne(id); } @Override public Optional<T> findById(ID id) { return besttaichinh.comById(id); } @Override public T editEntity(T entity) { return besttaichinh.comAndFlush(entity); } } @org.springframework.stereotype.Service public class GroupServiceImpl extends AbstractService<Group, Long, GroupRepository> { private final GroupRepository groupRepository; @Autowired protected GroupServiceImpl(GroupRepository repository) { super(repository); besttaichinh.compRepository = repository; } }

Và trong bộ điều khiển chúng tôi sử dụng dịch vụ này.

@RestController @RequestMapping(“/api”) class GroupController { private final Logger log = besttaichinh.comogger(GroupController.class); private final GroupServiceImpl groupService; @Autowired public GroupController(GroupServiceImpl groupService) { besttaichinh.compService = groupService; } @GetMapping(“/groups”) Collection<Group> groups() { return besttaichinh.comAll(); } @GetMapping(“/group/{id}”) ResponseEntity<?> getGroup(@PathVariable Long id) { Optional<Group> group = besttaichinh.comById(id); return besttaichinh.com(response -> besttaichinh.com().body(response)) .orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND)); } @PostMapping(“/group”) ResponseEntity<Group> createGroup(@Valid @RequestBody Group group) throws URISyntaxException { besttaichinh.com(“Request to create group: {}”, group); Group result = besttaichinh.com(group); return besttaichinh.comted(new URI(“/api/group/” + besttaichinh.comd())) .body(result); } @PutMapping(“/group”) ResponseEntity<Group> updateGroup(@Valid @RequestBody Group group) { besttaichinh.com(“Request to update group: {}”, group); Group result = besttaichinh.com(group); return besttaichinh.com().body(result); } @DeleteMapping(“/group/{id}”) public ResponseEntity<?> deleteGroup(@PathVariable Long id) { besttaichinh.com(“Request to delete group: {}”, id); besttaichinh.comteById(id); return besttaichinh.com().build(); } }

Viết một bình luận