Support for RAG in vets, refactoring of some class names, overall improvements and bug fixes

This commit is contained in:
Oded Shopen 2024-09-21 23:13:17 +03:00
parent f361dd2630
commit a6320d6d74
16 changed files with 564 additions and 18 deletions

View file

@ -32,6 +32,8 @@ import jakarta.persistence.MappedSuperclass;
@MappedSuperclass
public class BaseEntity implements Serializable {
private static final long serialVersionUID = -3856744164839586177L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

View file

@ -28,6 +28,8 @@ import jakarta.persistence.MappedSuperclass;
@MappedSuperclass
public class NamedEntity extends BaseEntity {
private static final long serialVersionUID = -1827620691768236760L;
@Column(name = "name")
private String name;

View file

@ -27,6 +27,8 @@ import jakarta.validation.constraints.NotBlank;
@MappedSuperclass
public class Person extends BaseEntity {
private static final long serialVersionUID = -5934070342233945557L;
@Column(name = "first_name")
@NotBlank
private String firstName;

View file

@ -46,6 +46,8 @@ import jakarta.validation.constraints.NotBlank;
@Table(name = "owners")
public class Owner extends Person {
private static final long serialVersionUID = 7676019169107660494L;
@Column(name = "address")
@NotBlank
private String address;

View file

@ -17,7 +17,7 @@ package org.springframework.samples.petclinic.owner;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
@ -32,9 +32,9 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import jakarta.validation.Valid;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
/**
* @author Juergen Hoeller

View file

@ -44,6 +44,8 @@ import jakarta.persistence.Table;
@Table(name = "pets")
public class Pet extends NamedEntity {
private static final long serialVersionUID = 622048308893169889L;
@Column(name = "birth_date")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate birthDate;

View file

@ -27,4 +27,6 @@ import jakarta.persistence.Table;
@Table(name = "types")
public class PetType extends NamedEntity {
private static final long serialVersionUID = -7611995145056548231L;
}

View file

@ -35,6 +35,8 @@ import jakarta.validation.constraints.NotBlank;
@Table(name = "visits")
public class Visit extends BaseEntity {
private static final long serialVersionUID = -8061148591973721283L;
@Column(name = "visit_date")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate date;

View file

@ -29,4 +29,6 @@ import jakarta.persistence.Table;
@Table(name = "specialties")
public class Specialty extends NamedEntity {
private static final long serialVersionUID = 5551869401872945493L;
}

View file

@ -25,13 +25,16 @@ import org.springframework.beans.support.MutableSortDefinition;
import org.springframework.beans.support.PropertyComparator;
import org.springframework.samples.petclinic.model.Person;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import jakarta.xml.bind.annotation.XmlElement;
/**
* Simple JavaBean domain object representing a veterinarian.
@ -45,6 +48,8 @@ import jakarta.xml.bind.annotation.XmlElement;
@Table(name = "vets")
public class Vet extends Person {
private static final long serialVersionUID = 2216866745632621103L;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "vet_specialties", joinColumns = @JoinColumn(name = "vet_id"),
inverseJoinColumns = @JoinColumn(name = "specialty_id"))
@ -61,17 +66,20 @@ public class Vet extends Person {
this.specialties = specialties;
}
@XmlElement
@JsonProperty("specialties")
@JsonSerialize(as = ArrayList.class)
public List<Specialty> getSpecialties() {
List<Specialty> sortedSpecs = new ArrayList<>(getSpecialtiesInternal());
PropertyComparator.sort(sortedSpecs, new MutableSortDefinition("name", true, true));
return Collections.unmodifiableList(sortedSpecs);
}
@JsonIgnore
public int getNrOfSpecialties() {
return getSpecialtiesInternal().size();
}
@JsonIgnore
public void addSpecialty(Specialty specialty) {
getSpecialtiesInternal().add(specialty);
}

View file

@ -61,7 +61,7 @@ class VetController {
}
private Page<Vet> findPaginated(int page) {
int pageSize = 5;
int pageSize = 20;
Pageable pageable = PageRequest.of(page - 1, pageSize);
return vetRepository.findAll(pageable);
}

View file

@ -19,6 +19,7 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.dao.DataAccessException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.Repository;
import org.springframework.transaction.annotation.Transactional;
@ -45,6 +46,13 @@ public interface VetRepository extends Repository<Vet, Integer> {
@Cacheable("vets")
Collection<Vet> findAll() throws DataAccessException;
/**
* Count the number of <code>Vet</code>s in the data store.
*/
@Transactional(readOnly = true)
@Query("SELECT COUNT(v) FROM Vet v")
Integer countVets() throws DataAccessException;
/**
* Retrieve all <code>Vet</code>s from data store in Pages
* @param pageable

View file

@ -1,5 +1,6 @@
# database init, supports mysql too
database=h2
spring.sql.init.schema-locations=classpath*:db/${database}/schema.sql
spring.sql.init.data-locations=classpath*:db/${database}/data.sql

View file

@ -4,16 +4,523 @@ INSERT INTO vets VALUES (default, 'Linda', 'Douglas');
INSERT INTO vets VALUES (default, 'Rafael', 'Ortega');
INSERT INTO vets VALUES (default, 'Henry', 'Stevens');
INSERT INTO vets VALUES (default, 'Sharon', 'Jenkins');
INSERT INTO vets VALUES (default, 'Matthew', 'Alexander');
INSERT INTO vets VALUES (default, 'Alice', 'Anderson');
INSERT INTO vets VALUES (default, 'James', 'Rogers');
INSERT INTO vets VALUES (default, 'Lauren', 'Butler');
INSERT INTO vets VALUES (default, 'Cheryl', 'Rodriguez');
INSERT INTO vets VALUES (default, 'Laura', 'Martin');
INSERT INTO vets VALUES (default, 'Ashley', 'Henderson');
INSERT INTO vets VALUES (default, 'Walter', 'Moore');
INSERT INTO vets VALUES (default, 'Benjamin', 'Hill');
INSERT INTO vets VALUES (default, 'Matthew', 'Myers');
INSERT INTO vets VALUES (default, 'Jean', 'Henderson');
INSERT INTO vets VALUES (default, 'David', 'Phillips');
INSERT INTO vets VALUES (default, 'Jacqueline', 'Ross');
INSERT INTO vets VALUES (default, 'Jacqueline', 'Perry');
INSERT INTO vets VALUES (default, 'William', 'Walker');
INSERT INTO vets VALUES (default, 'Christine', 'Garcia');
INSERT INTO vets VALUES (default, 'Patricia', 'Myers');
INSERT INTO vets VALUES (default, 'Michael', 'Gonzalez');
INSERT INTO vets VALUES (default, 'Joseph', 'Ross');
INSERT INTO vets VALUES (default, 'Paul', 'Walker');
INSERT INTO vets VALUES (default, 'Tyler', 'Reed');
INSERT INTO vets VALUES (default, 'Doris', 'Allen');
INSERT INTO vets VALUES (default, 'Julia', 'Allen');
INSERT INTO vets VALUES (default, 'Walter', 'Cox');
INSERT INTO vets VALUES (default, 'Samantha', 'Walker');
INSERT INTO vets VALUES (default, 'Marie', 'Rodriguez');
INSERT INTO vets VALUES (default, 'Andrew', 'Taylor');
INSERT INTO vets VALUES (default, 'Dorothy', 'Turner');
INSERT INTO vets VALUES (default, 'Aaron', 'Bryant');
INSERT INTO vets VALUES (default, 'Rose', 'Sanders');
INSERT INTO vets VALUES (default, 'Patrick', 'Bell');
INSERT INTO vets VALUES (default, 'Melissa', 'Hall');
INSERT INTO vets VALUES (default, 'Joshua', 'Stewart');
INSERT INTO vets VALUES (default, 'Teresa', 'Walker');
INSERT INTO vets VALUES (default, 'Doris', 'Taylor');
INSERT INTO vets VALUES (default, 'Thomas', 'Perez');
INSERT INTO vets VALUES (default, 'Evelyn', 'Ward');
INSERT INTO vets VALUES (default, 'Lauren', 'Smith');
INSERT INTO vets VALUES (default, 'Ashley', 'Morgan');
INSERT INTO vets VALUES (default, 'Helen', 'Wood');
INSERT INTO vets VALUES (default, 'Deborah', 'Russell');
INSERT INTO vets VALUES (default, 'Alice', 'Bennett');
INSERT INTO vets VALUES (default, 'Timothy', 'Jackson');
INSERT INTO vets VALUES (default, 'Marie', 'Williams');
INSERT INTO vets VALUES (default, 'Aaron', 'Richardson');
INSERT INTO vets VALUES (default, 'Donna', 'Davis');
INSERT INTO vets VALUES (default, 'Daniel', 'Richardson');
INSERT INTO vets VALUES (default, 'Julia', 'Butler');
INSERT INTO vets VALUES (default, 'Doris', 'Russell');
INSERT INTO vets VALUES (default, 'Paul', 'Baker');
INSERT INTO vets VALUES (default, 'Mary', 'Jones');
INSERT INTO vets VALUES (default, 'Alice', 'Peterson');
INSERT INTO vets VALUES (default, 'Eric', 'Robinson');
INSERT INTO vets VALUES (default, 'Henry', 'Smith');
INSERT INTO vets VALUES (default, 'Scott', 'Ford');
INSERT INTO vets VALUES (default, 'Jeffrey', 'King');
INSERT INTO vets VALUES (default, 'Laura', 'Baker');
INSERT INTO vets VALUES (default, 'Alice', 'Ross');
INSERT INTO vets VALUES (default, 'Patrick', 'Howard');
INSERT INTO vets VALUES (default, 'Hannah', 'Price');
INSERT INTO vets VALUES (default, 'Dennis', 'Price');
INSERT INTO vets VALUES (default, 'Joshua', 'Jackson');
INSERT INTO vets VALUES (default, 'Kenneth', 'White');
INSERT INTO vets VALUES (default, 'Mildred', 'Jones');
INSERT INTO vets VALUES (default, 'Evelyn', 'Stewart');
INSERT INTO vets VALUES (default, 'Jacob', 'Stewart');
INSERT INTO vets VALUES (default, 'Douglas', 'Bryant');
INSERT INTO vets VALUES (default, 'Walter', 'Bailey');
INSERT INTO vets VALUES (default, 'Linda', 'Bennett');
INSERT INTO vets VALUES (default, 'Alice', 'Thomas');
INSERT INTO vets VALUES (default, 'Rose', 'Allen');
INSERT INTO vets VALUES (default, 'Daniel', 'White');
INSERT INTO vets VALUES (default, 'Rebecca', 'Rogers');
INSERT INTO vets VALUES (default, 'Melissa', 'Garcia');
INSERT INTO vets VALUES (default, 'Jennifer', 'Phillips');
INSERT INTO vets VALUES (default, 'Tyler', 'Bailey');
INSERT INTO vets VALUES (default, 'Doris', 'Thomas');
INSERT INTO vets VALUES (default, 'Alice', 'Gonzalez');
INSERT INTO vets VALUES (default, 'Sandra', 'Scott');
INSERT INTO vets VALUES (default, 'Helen', 'Ford');
INSERT INTO vets VALUES (default, 'Helen', 'Jackson');
INSERT INTO vets VALUES (default, 'Richard', 'Miller');
INSERT INTO vets VALUES (default, 'Jacob', 'Brooks');
INSERT INTO vets VALUES (default, 'Richard', 'Hill');
INSERT INTO vets VALUES (default, 'Eric', 'Bailey');
INSERT INTO vets VALUES (default, 'Jason', 'Morgan');
INSERT INTO vets VALUES (default, 'Laura', 'Young');
INSERT INTO vets VALUES (default, 'Susan', 'Cooper');
INSERT INTO vets VALUES (default, 'Gary', 'Torres');
INSERT INTO vets VALUES (default, 'Julia', 'James');
INSERT INTO vets VALUES (default, 'Stephanie', 'Young');
INSERT INTO vets VALUES (default, 'Patrick', 'Hayes');
INSERT INTO vets VALUES (default, 'Megan', 'Roberts');
INSERT INTO vets VALUES (default, 'Stephen', 'Rivera');
INSERT INTO vets VALUES (default, 'David', 'Thompson');
INSERT INTO vets VALUES (default, 'Lauren', 'Adams');
INSERT INTO vets VALUES (default, 'Samuel', 'Wilson');
INSERT INTO vets VALUES (default, 'Rose', 'Edwards');
INSERT INTO vets VALUES (default, 'Janet', 'Jones');
INSERT INTO vets VALUES (default, 'Cheryl', 'Smith');
INSERT INTO vets VALUES (default, 'Alice', 'Roberts');
INSERT INTO vets VALUES (default, 'Nicholas', 'Walker');
INSERT INTO vets VALUES (default, 'Nicholas', 'Rodriguez');
INSERT INTO vets VALUES (default, 'Carol', 'Ford');
INSERT INTO vets VALUES (default, 'Thomas', 'Hughes');
INSERT INTO vets VALUES (default, 'Dennis', 'Brooks');
INSERT INTO vets VALUES (default, 'Doris', 'Phillips');
INSERT INTO vets VALUES (default, 'Timothy', 'Ford');
INSERT INTO vets VALUES (default, 'Susan', 'Howard');
INSERT INTO vets VALUES (default, 'Janet', 'Stewart');
INSERT INTO vets VALUES (default, 'Helen', 'Martin');
INSERT INTO vets VALUES (default, 'Rose', 'Jenkins');
INSERT INTO vets VALUES (default, 'Rebecca', 'Parker');
INSERT INTO vets VALUES (default, 'Ryan', 'Barnes');
INSERT INTO vets VALUES (default, 'Ruth', 'Nguyen');
INSERT INTO vets VALUES (default, 'Samantha', 'Rivera');
INSERT INTO vets VALUES (default, 'Alice', 'Roberts');
INSERT INTO vets VALUES (default, 'Keith', 'Howard');
INSERT INTO vets VALUES (default, 'Charles', 'Simmons');
INSERT INTO vets VALUES (default, 'Ryan', 'Kelly');
INSERT INTO vets VALUES (default, 'Martha', 'Campbell');
INSERT INTO vets VALUES (default, 'Mary', 'Thompson');
INSERT INTO vets VALUES (default, 'Eric', 'Wilson');
INSERT INTO vets VALUES (default, 'Charles', 'Russell');
INSERT INTO vets VALUES (default, 'David', 'Rodriguez');
INSERT INTO vets VALUES (default, 'Alice', 'Watson');
INSERT INTO vets VALUES (default, 'Margaret', 'Wright');
INSERT INTO vets VALUES (default, 'Dennis', 'Robinson');
INSERT INTO vets VALUES (default, 'Margaret', 'Turner');
INSERT INTO vets VALUES (default, 'Cheryl', 'Garcia');
INSERT INTO vets VALUES (default, 'Scott', 'Alexander');
INSERT INTO vets VALUES (default, 'Aaron', 'Price');
INSERT INTO vets VALUES (default, 'Patrick', 'Anderson');
INSERT INTO vets VALUES (default, 'Justin', 'Bell');
INSERT INTO vets VALUES (default, 'Melissa', 'Ward');
INSERT INTO vets VALUES (default, 'Paul', 'Perry');
INSERT INTO vets VALUES (default, 'David', 'Clark');
INSERT INTO vets VALUES (default, 'Marie', 'Robinson');
INSERT INTO vets VALUES (default, 'Sandra', 'Cooper');
INSERT INTO vets VALUES (default, 'Lauren', 'Price');
INSERT INTO vets VALUES (default, 'Ashley', 'Martin');
INSERT INTO vets VALUES (default, 'Ruth', 'Jenkins');
INSERT INTO vets VALUES (default, 'Daniel', 'Morris');
INSERT INTO vets VALUES (default, 'Lauren', 'Nguyen');
INSERT INTO vets VALUES (default, 'Charles', 'Torres');
INSERT INTO vets VALUES (default, 'Justin', 'Griffin');
INSERT INTO vets VALUES (default, 'Douglas', 'Jackson');
INSERT INTO vets VALUES (default, 'Gloria', 'Henderson');
INSERT INTO vets VALUES (default, 'Martha', 'Parker');
INSERT INTO vets VALUES (default, 'Jean', 'Martin');
INSERT INTO vets VALUES (default, 'Eric', 'Griffin');
INSERT INTO vets VALUES (default, 'Lauren', 'Wood');
INSERT INTO vets VALUES (default, 'Gary', 'Coleman');
INSERT INTO vets VALUES (default, 'Larry', 'Robinson');
INSERT INTO vets VALUES (default, 'William', 'Cook');
INSERT INTO vets VALUES (default, 'Jacob', 'Jackson');
INSERT INTO vets VALUES (default, 'George', 'Kelly');
INSERT INTO vets VALUES (default, 'Lauren', 'Perez');
INSERT INTO vets VALUES (default, 'Margaret', 'Hall');
INSERT INTO vets VALUES (default, 'Doris', 'Ross');
INSERT INTO vets VALUES (default, 'Adam', 'Miller');
INSERT INTO vets VALUES (default, 'Lauren', 'Richardson');
INSERT INTO vets VALUES (default, 'John', 'Thomas');
INSERT INTO vets VALUES (default, 'Robert', 'Ross');
INSERT INTO vets VALUES (default, 'William', 'Martin');
INSERT INTO vets VALUES (default, 'Maria', 'Sanchez');
INSERT INTO vets VALUES (default, 'Teresa', 'Morgan');
INSERT INTO vets VALUES (default, 'Janet', 'Perry');
INSERT INTO vets VALUES (default, 'Ruby', 'Rogers');
INSERT INTO vets VALUES (default, 'Rose', 'Patterson');
INSERT INTO vets VALUES (default, 'Alexander', 'Ramirez');
INSERT INTO vets VALUES (default, 'Ruth', 'Ross');
INSERT INTO vets VALUES (default, 'Doris', 'Campbell');
INSERT INTO vets VALUES (default, 'Patrick', 'Alexander');
INSERT INTO vets VALUES (default, 'Eric', 'Cox');
INSERT INTO vets VALUES (default, 'Rebecca', 'Myers');
INSERT INTO vets VALUES (default, 'Mildred', 'Long');
INSERT INTO vets VALUES (default, 'Rebecca', 'Ramirez');
INSERT INTO vets VALUES (default, 'Jeffrey', 'Butler');
INSERT INTO vets VALUES (default, 'James', 'Walker');
INSERT INTO vets VALUES (default, 'Melissa', 'Rodriguez');
INSERT INTO vets VALUES (default, 'David', 'Williams');
INSERT INTO vets VALUES (default, 'Megan', 'Henderson');
INSERT INTO vets VALUES (default, 'Patricia', 'Phillips');
INSERT INTO vets VALUES (default, 'Eric', 'Jackson');
INSERT INTO vets VALUES (default, 'Carol', 'Wood');
INSERT INTO vets VALUES (default, 'Andrew', 'Wright');
INSERT INTO vets VALUES (default, 'Anthony', 'Gonzalez');
INSERT INTO vets VALUES (default, 'Shirley', 'Martinez');
INSERT INTO vets VALUES (default, 'Janet', 'Foster');
INSERT INTO vets VALUES (default, 'Justin', 'Watson');
INSERT INTO vets VALUES (default, 'Janet', 'Thomas');
INSERT INTO vets VALUES (default, 'Melissa', 'Taylor');
INSERT INTO vets VALUES (default, 'Angela', 'Cook');
INSERT INTO vets VALUES (default, 'Jeffrey', 'Perez');
INSERT INTO vets VALUES (default, 'Matthew', 'Thomas');
INSERT INTO vets VALUES (default, 'Joshua', 'Adams');
INSERT INTO vets VALUES (default, 'Walter', 'Wright');
INSERT INTO vets VALUES (default, 'Henry', 'Diaz');
INSERT INTO vets VALUES (default, 'Melissa', 'Simmons');
INSERT INTO vets VALUES (default, 'Mary', 'Perez');
INSERT INTO vets VALUES (default, 'Carol', 'Collins');
INSERT INTO vets VALUES (default, 'Alice', 'Henderson');
INSERT INTO vets VALUES (default, 'Marie', 'Allen');
INSERT INTO vets VALUES (default, 'Linda', 'Robinson');
INSERT INTO vets VALUES (default, 'Samantha', 'Simmons');
INSERT INTO vets VALUES (default, 'Jennifer', 'Peterson');
INSERT INTO vets VALUES (default, 'Henry', 'Wright');
INSERT INTO vets VALUES (default, 'Angela', 'Russell');
INSERT INTO vets VALUES (default, 'Jean', 'Wilson');
INSERT INTO vets VALUES (default, 'George', 'Clark');
INSERT INTO vets VALUES (default, 'Lauren', 'Johnson');
INSERT INTO vets VALUES (default, 'Alice', 'James');
INSERT INTO vets VALUES (default, 'Dorothy', 'Lewis');
INSERT INTO vets VALUES (default, 'Carolyn', 'Hayes');
INSERT INTO vets VALUES (default, 'Lauren', 'Coleman');
INSERT INTO vets VALUES (default, 'Evelyn', 'Ramirez');
INSERT INTO vets VALUES (default, 'Alexander', 'Stewart');
INSERT INTO vets VALUES (default, 'John', 'Peterson');
INSERT INTO vets VALUES (default, 'Patrick', 'Edwards');
INSERT INTO vets VALUES (default, 'Evelyn', 'Collins');
INSERT INTO vets VALUES (default, 'Anthony', 'Perez');
INSERT INTO vets VALUES (default, 'Andrew', 'Lewis');
INSERT INTO vets VALUES (default, 'Richard', 'James');
INSERT INTO vets VALUES (default, 'William', 'Garcia');
INSERT INTO vets VALUES (default, 'Helen', 'Patterson');
INSERT INTO vets VALUES (default, 'Walter', 'Lewis');
INSERT INTO vets VALUES (default, 'Doris', 'Hill');
INSERT INTO vets VALUES (default, 'Scott', 'Phillips');
INSERT INTO vets VALUES (default, 'Elizabeth', 'Wood');
INSERT INTO vets VALUES (default, 'Paul', 'Hayes');
INSERT INTO vets VALUES (default, 'Mark', 'Howard');
INSERT INTO vets VALUES (default, 'Barbara', 'Coleman');
INSERT INTO vets VALUES (default, 'Andrew', 'Wood');
INSERT INTO vets VALUES (default, 'Ruth', 'Moore');
INSERT INTO vets VALUES (default, 'Sandra', 'Brooks');
INSERT INTO vets VALUES (default, 'Eric', 'Garcia');
INSERT INTO vets VALUES (default, 'Deborah', 'Ward');
INSERT INTO vets VALUES (default, 'James', 'Davis');
INSERT INTO vets VALUES (default, 'Samantha', 'Adams');
INSERT INTO vets VALUES (default, 'Nicholas', 'Johnson');
INSERT INTO vets VALUES (default, 'Joshua', 'Murphy');
INSERT INTO vets VALUES (default, 'Rebecca', 'Flores');
INSERT INTO vets VALUES (default, 'Emma', 'Bell');
INSERT INTO vets VALUES (default, 'Jerry', 'Nelson');
INSERT INTO vets VALUES (default, 'Ruth', 'Cox');
INSERT INTO vets VALUES (default, 'Gloria', 'Powell');
INSERT INTO vets VALUES (default, 'Shirley', 'Clark');
INSERT INTO vets VALUES (default, 'Larry', 'Bryant');
INSERT INTO vets VALUES (default, 'George', 'Brown');
INSERT INTO specialties VALUES (default, 'radiology');
INSERT INTO specialties VALUES (default, 'surgery');
INSERT INTO specialties VALUES (default, 'dentistry');
INSERT INTO vet_specialties VALUES (2, 1);
INSERT INTO vet_specialties VALUES (3, 2);
INSERT INTO vet_specialties VALUES (3, 3);
INSERT INTO vet_specialties VALUES (4, 2);
INSERT INTO vet_specialties VALUES (5, 1);
-- First, let's make sure we have 5 specialties
INSERT INTO specialties (name) VALUES ('radiology');
INSERT INTO specialties (name) VALUES ('surgery');
INSERT INTO specialties (name) VALUES ('dentistry');
INSERT INTO specialties (name) VALUES ('cardiology');
INSERT INTO specialties (name) VALUES ('anesthesia');
INSERT INTO vet_specialties VALUES ('220', '2');
INSERT INTO vet_specialties VALUES ('131', '1');
INSERT INTO vet_specialties VALUES ('58', '3');
INSERT INTO vet_specialties VALUES ('43', '4');
INSERT INTO vet_specialties VALUES ('110', '3');
INSERT INTO vet_specialties VALUES ('63', '5');
INSERT INTO vet_specialties VALUES ('206', '4');
INSERT INTO vet_specialties VALUES ('29', '3');
INSERT INTO vet_specialties VALUES ('189', '3');
INSERT INTO vet_specialties VALUES ('202', '4');
INSERT INTO vet_specialties VALUES ('75', '4');
INSERT INTO vet_specialties VALUES ('156', '3');
INSERT INTO vet_specialties VALUES ('218', '5');
INSERT INTO vet_specialties VALUES ('152', '4');
INSERT INTO vet_specialties VALUES ('173', '2');
INSERT INTO vet_specialties VALUES ('251', '2');
INSERT INTO vet_specialties VALUES ('99', '3');
INSERT INTO vet_specialties VALUES ('157', '2');
INSERT INTO vet_specialties VALUES ('250', '3');
INSERT INTO vet_specialties VALUES ('37', '1');
INSERT INTO vet_specialties VALUES ('197', '3');
INSERT INTO vet_specialties VALUES ('121', '3');
INSERT INTO vet_specialties VALUES ('176', '1');
INSERT INTO vet_specialties VALUES ('72', '3');
INSERT INTO vet_specialties VALUES ('160', '1');
INSERT INTO vet_specialties VALUES ('56', '5');
INSERT INTO vet_specialties VALUES ('248', '4');
INSERT INTO vet_specialties VALUES ('49', '5');
INSERT INTO vet_specialties VALUES ('61', '5');
INSERT INTO vet_specialties VALUES ('29', '4');
INSERT INTO vet_specialties VALUES ('238', '2');
INSERT INTO vet_specialties VALUES ('176', '4');
INSERT INTO vet_specialties VALUES ('46', '4');
INSERT INTO vet_specialties VALUES ('189', '5');
INSERT INTO vet_specialties VALUES ('56', '2');
INSERT INTO vet_specialties VALUES ('200', '5');
INSERT INTO vet_specialties VALUES ('70', '3');
INSERT INTO vet_specialties VALUES ('213', '5');
INSERT INTO vet_specialties VALUES ('106', '2');
INSERT INTO vet_specialties VALUES ('219', '2');
INSERT INTO vet_specialties VALUES ('81', '3');
INSERT INTO vet_specialties VALUES ('126', '5');
INSERT INTO vet_specialties VALUES ('255', '2');
INSERT INTO vet_specialties VALUES ('175', '4');
INSERT INTO vet_specialties VALUES ('71', '2');
INSERT INTO vet_specialties VALUES ('206', '1');
INSERT INTO vet_specialties VALUES ('85', '2');
INSERT INTO vet_specialties VALUES ('177', '1');
INSERT INTO vet_specialties VALUES ('118', '2');
INSERT INTO vet_specialties VALUES ('256', '4');
INSERT INTO vet_specialties VALUES ('136', '3');
INSERT INTO vet_specialties VALUES ('44', '5');
INSERT INTO vet_specialties VALUES ('236', '4');
INSERT INTO vet_specialties VALUES ('2', '5');
INSERT INTO vet_specialties VALUES ('88', '1');
INSERT INTO vet_specialties VALUES ('86', '1');
INSERT INTO vet_specialties VALUES ('155', '2');
INSERT INTO vet_specialties VALUES ('122', '5');
INSERT INTO vet_specialties VALUES ('61', '3');
INSERT INTO vet_specialties VALUES ('24', '5');
INSERT INTO vet_specialties VALUES ('14', '4');
INSERT INTO vet_specialties VALUES ('159', '2');
INSERT INTO vet_specialties VALUES ('67', '4');
INSERT INTO vet_specialties VALUES ('182', '2');
INSERT INTO vet_specialties VALUES ('10', '1');
INSERT INTO vet_specialties VALUES ('174', '4');
INSERT INTO vet_specialties VALUES ('166', '5');
INSERT INTO vet_specialties VALUES ('91', '3');
INSERT INTO vet_specialties VALUES ('244', '5');
INSERT INTO vet_specialties VALUES ('135', '2');
INSERT INTO vet_specialties VALUES ('222', '1');
INSERT INTO vet_specialties VALUES ('151', '3');
INSERT INTO vet_specialties VALUES ('79', '4');
INSERT INTO vet_specialties VALUES ('182', '3');
INSERT INTO vet_specialties VALUES ('249', '1');
INSERT INTO vet_specialties VALUES ('133', '1');
INSERT INTO vet_specialties VALUES ('127', '4');
INSERT INTO vet_specialties VALUES ('123', '5');
INSERT INTO vet_specialties VALUES ('248', '5');
INSERT INTO vet_specialties VALUES ('99', '1');
INSERT INTO vet_specialties VALUES ('252', '5');
INSERT INTO vet_specialties VALUES ('221', '1');
INSERT INTO vet_specialties VALUES ('123', '2');
INSERT INTO vet_specialties VALUES ('16', '3');
INSERT INTO vet_specialties VALUES ('180', '2');
INSERT INTO vet_specialties VALUES ('198', '3');
INSERT INTO vet_specialties VALUES ('214', '3');
INSERT INTO vet_specialties VALUES ('144', '2');
INSERT INTO vet_specialties VALUES ('140', '4');
INSERT INTO vet_specialties VALUES ('233', '2');
INSERT INTO vet_specialties VALUES ('87', '5');
INSERT INTO vet_specialties VALUES ('12', '4');
INSERT INTO vet_specialties VALUES ('2', '3');
INSERT INTO vet_specialties VALUES ('156', '4');
INSERT INTO vet_specialties VALUES ('105', '4');
INSERT INTO vet_specialties VALUES ('144', '3');
INSERT INTO vet_specialties VALUES ('31', '2');
INSERT INTO vet_specialties VALUES ('228', '5');
INSERT INTO vet_specialties VALUES ('232', '3');
INSERT INTO vet_specialties VALUES ('33', '1');
INSERT INTO vet_specialties VALUES ('195', '2');
INSERT INTO vet_specialties VALUES ('12', '1');
INSERT INTO vet_specialties VALUES ('180', '1');
INSERT INTO vet_specialties VALUES ('122', '2');
INSERT INTO vet_specialties VALUES ('101', '1');
INSERT INTO vet_specialties VALUES ('211', '2');
INSERT INTO vet_specialties VALUES ('175', '2');
INSERT INTO vet_specialties VALUES ('246', '1');
INSERT INTO vet_specialties VALUES ('251', '4');
INSERT INTO vet_specialties VALUES ('13', '4');
INSERT INTO vet_specialties VALUES ('217', '2');
INSERT INTO vet_specialties VALUES ('171', '3');
INSERT INTO vet_specialties VALUES ('125', '5');
INSERT INTO vet_specialties VALUES ('129', '3');
INSERT INTO vet_specialties VALUES ('217', '3');
INSERT INTO vet_specialties VALUES ('68', '4');
INSERT INTO vet_specialties VALUES ('13', '2');
INSERT INTO vet_specialties VALUES ('214', '2');
INSERT INTO vet_specialties VALUES ('128', '1');
INSERT INTO vet_specialties VALUES ('253', '2');
INSERT INTO vet_specialties VALUES ('36', '1');
INSERT INTO vet_specialties VALUES ('210', '2');
INSERT INTO vet_specialties VALUES ('81', '5');
INSERT INTO vet_specialties VALUES ('237', '5');
INSERT INTO vet_specialties VALUES ('78', '3');
INSERT INTO vet_specialties VALUES ('244', '1');
INSERT INTO vet_specialties VALUES ('37', '4');
INSERT INTO vet_specialties VALUES ('230', '2');
INSERT INTO vet_specialties VALUES ('9', '3');
INSERT INTO vet_specialties VALUES ('249', '5');
INSERT INTO vet_specialties VALUES ('210', '5');
INSERT INTO vet_specialties VALUES ('33', '5');
INSERT INTO vet_specialties VALUES ('177', '2');
INSERT INTO vet_specialties VALUES ('92', '3');
INSERT INTO vet_specialties VALUES ('18', '5');
INSERT INTO vet_specialties VALUES ('82', '4');
INSERT INTO vet_specialties VALUES ('185', '1');
INSERT INTO vet_specialties VALUES ('70', '1');
INSERT INTO vet_specialties VALUES ('146', '2');
INSERT INTO vet_specialties VALUES ('60', '2');
INSERT INTO vet_specialties VALUES ('157', '4');
INSERT INTO vet_specialties VALUES ('43', '1');
INSERT INTO vet_specialties VALUES ('124', '4');
INSERT INTO vet_specialties VALUES ('185', '2');
INSERT INTO vet_specialties VALUES ('92', '2');
INSERT INTO vet_specialties VALUES ('152', '5');
INSERT INTO vet_specialties VALUES ('161', '3');
INSERT INTO vet_specialties VALUES ('178', '3');
INSERT INTO vet_specialties VALUES ('53', '2');
INSERT INTO vet_specialties VALUES ('93', '5');
INSERT INTO vet_specialties VALUES ('168', '2');
INSERT INTO vet_specialties VALUES ('19', '4');
INSERT INTO vet_specialties VALUES ('158', '2');
INSERT INTO vet_specialties VALUES ('240', '4');
INSERT INTO vet_specialties VALUES ('246', '5');
INSERT INTO vet_specialties VALUES ('166', '4');
INSERT INTO vet_specialties VALUES ('134', '5');
INSERT INTO vet_specialties VALUES ('151', '4');
INSERT INTO vet_specialties VALUES ('113', '1');
INSERT INTO vet_specialties VALUES ('114', '4');
INSERT INTO vet_specialties VALUES ('107', '3');
INSERT INTO vet_specialties VALUES ('200', '2');
INSERT INTO vet_specialties VALUES ('17', '4');
INSERT INTO vet_specialties VALUES ('140', '5');
INSERT INTO vet_specialties VALUES ('196', '2');
INSERT INTO vet_specialties VALUES ('108', '1');
INSERT INTO vet_specialties VALUES ('102', '3');
INSERT INTO vet_specialties VALUES ('83', '4');
INSERT INTO vet_specialties VALUES ('79', '1');
INSERT INTO vet_specialties VALUES ('91', '4');
INSERT INTO vet_specialties VALUES ('30', '4');
INSERT INTO vet_specialties VALUES ('165', '3');
INSERT INTO vet_specialties VALUES ('34', '1');
INSERT INTO vet_specialties VALUES ('204', '4');
INSERT INTO vet_specialties VALUES ('30', '5');
INSERT INTO vet_specialties VALUES ('84', '5');
INSERT INTO vet_specialties VALUES ('187', '5');
INSERT INTO vet_specialties VALUES ('127', '1');
INSERT INTO vet_specialties VALUES ('229', '5');
INSERT INTO vet_specialties VALUES ('71', '1');
INSERT INTO vet_specialties VALUES ('253', '3');
INSERT INTO vet_specialties VALUES ('102', '1');
INSERT INTO vet_specialties VALUES ('195', '1');
INSERT INTO vet_specialties VALUES ('149', '3');
INSERT INTO vet_specialties VALUES ('238', '5');
INSERT INTO vet_specialties VALUES ('113', '3');
INSERT INTO vet_specialties VALUES ('105', '1');
INSERT INTO vet_specialties VALUES ('111', '2');
INSERT INTO vet_specialties VALUES ('20', '1');
INSERT INTO vet_specialties VALUES ('52', '4');
INSERT INTO vet_specialties VALUES ('226', '5');
INSERT INTO vet_specialties VALUES ('216', '1');
INSERT INTO vet_specialties VALUES ('136', '5');
INSERT INTO vet_specialties VALUES ('250', '2');
INSERT INTO vet_specialties VALUES ('229', '2');
INSERT INTO vet_specialties VALUES ('198', '4');
INSERT INTO vet_specialties VALUES ('73', '1');
INSERT INTO vet_specialties VALUES ('128', '4');
INSERT INTO vet_specialties VALUES ('161', '4');
INSERT INTO vet_specialties VALUES ('111', '1');
INSERT INTO vet_specialties VALUES ('146', '1');
INSERT INTO vet_specialties VALUES ('60', '5');
INSERT INTO vet_specialties VALUES ('235', '5');
INSERT INTO vet_specialties VALUES ('174', '2');
INSERT INTO vet_specialties VALUES ('225', '5');
INSERT INTO vet_specialties VALUES ('224', '1');
INSERT INTO vet_specialties VALUES ('256', '1');
INSERT INTO vet_specialties VALUES ('132', '3');
INSERT INTO vet_specialties VALUES ('211', '4');
INSERT INTO vet_specialties VALUES ('104', '4');
INSERT INTO vet_specialties VALUES ('112', '3');
INSERT INTO vet_specialties VALUES ('213', '1');
INSERT INTO vet_specialties VALUES ('108', '5');
INSERT INTO vet_specialties VALUES ('143', '2');
INSERT INTO vet_specialties VALUES ('141', '5');
INSERT INTO vet_specialties VALUES ('159', '1');
INSERT INTO vet_specialties VALUES ('228', '3');
INSERT INTO vet_specialties VALUES ('75', '5');
INSERT INTO vet_specialties VALUES ('36', '5');
INSERT INTO vet_specialties VALUES ('237', '1');
INSERT INTO vet_specialties VALUES ('83', '5');
INSERT INTO vet_specialties VALUES ('124', '1');
INSERT INTO vet_specialties VALUES ('133', '2');
INSERT INTO vet_specialties VALUES ('121', '5');
INSERT INTO vet_specialties VALUES ('240', '5');
INSERT INTO vet_specialties VALUES ('142', '3');
INSERT INTO vet_specialties VALUES ('193', '3');
INSERT INTO vet_specialties VALUES ('252', '3');
INSERT INTO vet_specialties VALUES ('118', '4');
INSERT INTO vet_specialties VALUES ('26', '3');
INSERT INTO vet_specialties VALUES ('197', '2');
INSERT INTO vet_specialties VALUES ('17', '2');
INSERT INTO vet_specialties VALUES ('78', '2');
INSERT INTO vet_specialties VALUES ('26', '5');
INSERT INTO vet_specialties VALUES ('196', '1');
INSERT INTO vet_specialties VALUES ('141', '2');
INSERT INTO vet_specialties VALUES ('224', '2');
INSERT INTO vet_specialties VALUES ('223', '5');
INSERT INTO vet_specialties VALUES ('170', '3');
INSERT INTO vet_specialties VALUES ('9', '2');
INSERT INTO vet_specialties VALUES ('94', '1');
INSERT INTO vet_specialties VALUES ('230', '3');
INSERT INTO vet_specialties VALUES ('131', '5');
INSERT INTO vet_specialties VALUES ('117', '3');
INSERT INTO vet_specialties VALUES ('223', '4');
INSERT INTO vet_specialties VALUES ('236', '2');
INSERT INTO vet_specialties VALUES ('97', '2');
INSERT INTO vet_specialties VALUES ('143', '1');
INSERT INTO vet_specialties VALUES ('173', '1');
INSERT INTO vet_specialties VALUES ('132', '5');
INSERT INTO vet_specialties VALUES ('138', '1');
INSERT INTO vet_specialties VALUES ('80', '5');
INSERT INTO vet_specialties VALUES ('6', '5');
INSERT INTO vet_specialties VALUES ('216', '3');
INSERT INTO vet_specialties VALUES ('135', '5');
INSERT INTO vet_specialties VALUES ('160', '3');
INSERT INTO vet_specialties VALUES ('97', '4');
INSERT INTO types VALUES (default, 'cat');
INSERT INTO types VALUES (default, 'dog');
@ -51,3 +558,5 @@ INSERT INTO visits VALUES (default, 7, '2013-01-01', 'rabies shot');
INSERT INTO visits VALUES (default, 8, '2013-01-02', 'rabies shot');
INSERT INTO visits VALUES (default, 8, '2013-01-03', 'neutered');
INSERT INTO visits VALUES (default, 7, '2013-01-04', 'spayed');

View file

@ -82,11 +82,15 @@ class PetTypeFormatterTests {
private List<PetType> makePetTypes() {
List<PetType> petTypes = new ArrayList<>();
petTypes.add(new PetType() {
private static final long serialVersionUID = 4182992965923515553L;
{
setName("Dog");
}
});
petTypes.add(new PetType() {
private static final long serialVersionUID = 1823182409934678856L;
{
setName("Bird");
}

View file

@ -186,11 +186,11 @@ class ClinicServiceTests {
void shouldFindVets() {
Collection<Vet> vets = this.vets.findAll();
Vet vet = EntityUtils.getById(vets, Vet.class, 3);
assertThat(vet.getLastName()).isEqualTo("Douglas");
Vet vet = EntityUtils.getById(vets, Vet.class, 2);
assertThat(vet.getLastName()).isEqualTo("Leary");
assertThat(vet.getNrOfSpecialties()).isEqualTo(2);
assertThat(vet.getSpecialties().get(0).getName()).isEqualTo("dentistry");
assertThat(vet.getSpecialties().get(1).getName()).isEqualTo("surgery");
assertThat(vet.getSpecialties().get(0).getName()).isEqualTo("anesthesia");
assertThat(vet.getSpecialties().get(1).getName()).isEqualTo("dentistry");
}
@Test