[JAVA] Machen Sie die where-Klauselvariable in Spring Data JPA

Zweck

Annahme

Verfahren

Repository ändern

testRepository


@Repository
public interface TestRepository extends JpaRepository<TestEntity, Integer>, JpaSpecificationExecutor<TestEntity> {

}

Vorbereitung der Spezifikationsklasse

testSpecifications


/**
	 *Wenn die Materiekategorie in der Suchbedingung vorhanden ist, fügen Sie sie der where-Bedingung hinzu
	 * @param anken_kbn
	 * @return
	 */
	public Specification<TestEntity> ankenKbnContains(String anken_kbn) {
		if (Util.stringIsEmpty(anken_kbn))
			return null;
		else
			return new Specification<TestEntity>() {
				@Override
				public Predicate toPredicate(Root<TestEntity> root, CriteriaQuery<?> query,
						CriteriaBuilder cb) {
					return cb.like(root.get("anken_kbn"), "%" + anken_kbn + "%");
				}
			};
	}

--Dieser Teil erstellt eine teilweise Übereinstimmungssuche mit dem Element anken_kbn

Suche mit Spezifikation in Dao

testDao


@Override
	public List<TestEntity> findBySearchItem(TestRepository testRepository,TestForm form) {
		TestSpecifications spec = new TestSpecifications();
		List<TestEntity> result = TestRepository.findAll(Specifications.where(spec.ankenKbnContains(form.getAnken_kbn()))
				.and(spec.ankenNameContains(form.getAnken_name()))
				.and(spec.reaseCampanyNameContains(form.getRease_campany_name()))
				);
		System.out.println("Suchergebnisse");
		System.out.println(result);

		return result;
	}
Specifications.where(spec.ankenKbnContains(form.getAnken_kbn()))
				.and(spec.ankenNameContains(form.getAnken_name()))
				.and(spec.reaseCampanyNameContains(form.getRease_campany_name()))

Verwendung von Controler

testControleller


	@RequestMapping("/search")
	public ModelAndView search(@ModelAttribute("testListForm") TestListForm contractListForm,
			ModelAndView mav) {

		mav.setViewName("index");
		Iterable<TestEntity> testEntityList = testDao.findBySearchItem(testRepository, testListForm);
		
		System.out.println("Suchergebnisse");
		System.out.println(tstEntityList);
		
		mav.addObject("contractList", hdrEntityList);
		mav.addObject("contractListF", new TestListForm());
		return mav;

	}

das ist alles

--Erstellte eine Variable where-Klausel durch Tappen ――Ist das eine gute Art zu schreiben? Es gibt vielleicht eine bessere Art zu schreiben, die ich nicht habe.

Recommended Posts

Machen Sie die where-Klauselvariable in Spring Data JPA
Existiert mit der Spezifikation in Spring Data JPA
Bis zur Verwendung von Spring Data und JPA Part 2
Bis zur Verwendung von Spring Data und JPA Part 1
Überprüfen Sie das Verhalten von getOne-, findById- und Abfragemethoden mit Spring Boot + Spring Data JPA
[spring] Verwenden wir Spring Data JPA
[Spring Data JPA] Kann die And-Bedingung in der automatisch implementierten Löschmethode verwendet werden?
Spring Data JPA: Schreiben Sie eine Abfrage in Pure SQL in @Query of Repository
[So installieren Sie Spring Data Jpa]
[Spring Data JPA] Die benutzerdefinierte ID wird zum Zeitpunkt der Registrierung in einer eindeutigen Reihenfolge zugewiesen.
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
Sehen Sie sich das Verhalten von Entitätsaktualisierungen mit Spring Boot + Spring Data JPA an
Spring Data JPA SQL-Protokollausgabe
Schritte zum Ausführen von Spring Boot beziehen sich auf die Werte in der Eigenschaftendatei
Spring Autowired wird im Konstruktor geschrieben
ODER suchen Sie mit der Spring Data Jpa-Spezifikation
Null-Support-Cache in Spring Data Redis
Antwortdaten direkt im Frühjahr schreiben
Jackson kann hibernateLazyInitializer in Spring Data nicht JSON serialisieren JPA führt zu einem Fehler
Beispielcode für die DB-Steuerung durch deklarative Transaktion mit Spring Boot + Spring Data JPA
So erstellen Sie eine eindeutige Datenkombination in der Schienen-Zwischentabelle
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
Spring Data JPA Save Select-Insert ist nur Insert
Gegenseitige Bezugnahme auf Entity of Spring Data JPA und seine Anmerkungen
Organisiertes Memo im Kopf (Java - Datentyp)
Sortieren nach Spring Data JPA (mit zusammengesetzter Schlüsselsortierung)
Erstellen eines gemeinsamen Repositorys mit Spring Data JPA
So definieren Sie mehrere orm.xml in Spring4, JPA2.1
Zeigen Sie die Gradle-Aufgabe im Spring Boot-Projekt an
Spring Boot + Spring Data JPA Informationen zu mehreren Tabellenverknüpfungen