4 yıldır Grails'i kullandıktan sonra Spring Boot'da yeni bir projeye başladım. Grails'te Bir db tablosundaki ilişkilendirme satırını güncelleştirmek için etki alanı sınıfının bir örneğinin properties alanını kullandım. Domain.properties atama genellikle bir hizmet içinde yapıldı. properties
alanı, bir web formundan gelen verilerle ayarlandı. Bu yaklaşım, n atama öğesinin yazılması yerine, bir etki alanı örneğinin tek bir satıra güncellenmesine izin verir; burada n, etki alanı sınıfında tanımlanan özniteliklerin sayısıdır.İlkbaharda Grails Domain özellikleri alanına benzer bir şey var mı?
Şimdi sorun .. İlkbaharda benzer bir şey var mı? Ben ilkbaharda Benzer bir şey yapmak istiyorum:
update(Long radioId,Map properties) {
// get the radio to be update from the db
Radio radio = getRadio(radioId)
radio.properties = properties
save(radio)
}
Biraz detay, Benim denetleyicisi eklemek
public ModelAndView updateRadio(Radio radio) {
radioService.update(radio);
return new ModelAndView("redirect:/superadmin/radio/"+radio.getIdentifier()+"/zoom");
}
My Servis Şimdi
@Service
public class RadioService {
...
public void update(Radio radio) {
assert radio.getId() != null;
radioRepository.save(radio);
}
...
}
web formu explicity yapmazsa Radyoda tanimlanan tüm alanlarin gönderilmesi Sorun oldugumdan beri kayitli olan alanin degerini kaybedecegim. Bunun
public void update(Map radioProperties,Long radioId) {
Radio radio = radioRepository.findById(radioId);
radio.properties = radioProperties // only properties present in this map will be update (in grails)
radioRepository.save(radio);
}
gibi Somthing yazabilirsiniz Eğer harika olurdu.
İkinci yöntemde, yalnızca haritadaki özellikler (web formundakiler) güncellenecek ve radyo örneğinin diğer mağaza alanı el değmemiş olacaktır.
Merhaba, Spring Data JPA'yı kullanıyorum. Daha açık olması için sorumu daha ayrıntılı olarak güncelledim. Thx –
Ah, özür dilerim, her zaman bu ön tarafı ele alıyorum. Daha karmaşık ciltleme için @InitBinder kullanarak gizli alanlar veya sunucu tarafı kullanarak. Belki Spring's BeanUtils size yardımcı olabilir - http://docs.spring.io/spring-framework/docs/current/javadoc-api/index.html?org/springframework/beans/BeanUtils.html –
Tamam teşekkürler, kontrol ederim .. ama benim kendi kendime uygulamak zorundayım. :-) –