package com.ps.services.impl; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.ps.ents.Pet; import com.ps.ents.User; import com.ps.repos.PetRepo; import com.ps.services.PetService; @Service public class PetServiceImpl implements PetService { private PetRepo petRepo; @Autowired public PetServiceImpl(PetRepo petRepo) { this.petRepo = petRepo; } @Override @Transactional(propagation = Propagation.NESTED, readOnly = true) public String getPetsAsHtml(User owner) { Set<Pet> pets = petRepo.findByOwner(owner); if(pets.isEmpty()) { return "<p>User " + owner.getUsername() + " has no pets.</p>\n"; } StringBuilder htmlSb = new StringBuilder("User " + owner.getUsername() + " has:\n"); for (Pet pet : pets) { htmlSb.append("<p>Name: " + pet.getName() + ", type: " + pet.getPetType() + ", Age: " + pet.getAge() +"</p></br>\n"); } return htmlSb.toString(); } }