Java Spring MVC 11. Day (Onbirinci Gün)
model.attribute(“course”,course.getAll())
model.attribute(“id”,course.getId())
thymeleaf
→ <th:object=”course”>
→ <th:field=”*{id}”> → bunun karşılığı “course.id”
→ <th:field=”${id}”> → doğrudan yolladığımız “id” parametresine erişir
- Instructor birden fazla kurs sahibi olabilir. Bu yüzden şu şekilde ayarlamalıyız
Instructor → @ManyToMany
Course → @ManyToMany (mappedBy=”courses”)
-
**Set
test = new HashSet()** → bunu yapıyoruz çünkü get dediğimizde eğer içi boşsa nullpointer dönebilir. Hashset ile bunu engelliyoruz. -
Criteria → criteria.add(Restircts.in(“id”,ids) → ids : bizim fonksiyona verdiğimiz liste
“id” : control edeceğimiz kolon adı, parametre
-
Lazyloading → join işlemlerini default olarak azaltmaya çalışıyor. Joinleri başt ayapmıyor. Ana sınıfı çekiyor. Relationları takmıyoruz. Hibernate diyor ki eğer lazım olursa ben gider çekerim o verileri. Yalnız bu yeni bi modül, son hibernate versiyonuyla geldi.
-
Lazyloading kapatırsak
→ Hibernate.initialize(instructors.getCourses())
→ instructors.getCourses().size() gibi uyduruk bi işlemle load etmesini sağlıyoruz.
DTO → Data Transfer Object : önyüzdeki formumuzu temsil eden bir model nesnemiz. Böylece formda mevcut olan objeleri controllerda parse edip kaydedebiliriz.
Application ve Student nesneleri → ApplicationFormDto olarak gidiyor.
<th:field=”form.student.name”>
<th:field=”form.application.id”> şeklinde çağırabiliriz thymeleafde.