[Javalist] Spring perszisztalas/merge nem megy

Gábor Garami gabor.garami at hron.me
2012. Aug. 20., H, 07:51:13 CEST


Hat, elkiabaltam.

A problema meg aktiv, meg mindig nem tudok irni az adatbazisba.

A kod tallozhato itt:
http://git.hron.me/?p=hron84/springblog.git;a=summary letoltesi link
ugyanott.

Plz. valaki help.

Garami Gábor
E-mail: gabor.garami at hron.me
Tel: +36 20 235 9621
MSN: hrgy at vipmail.hu
Skype: hron84


2012/8/19 Gábor Garami <gabor.garami at hron.me>:
> Igen, akartam kozben irni, csakhat...
>
> Szoval a megoldas kettos volt:
> - flush, amit te is irtal
> - csinaltam a dao-knak egy interfeszt, az ott levo metodusok kaptak
> @Transactional flaget, majd abbol implementaltam a daokat, ahol mar nem
> kellett annotalni. Valamiert azt se szerette, ha siman a dao osztalyon volt
> a @Transactional. De igy most jo, es koveti a spring ajanlasokat is =>
> duplan jo!
>
> Garami Gábor
> gabor.garami at hron.me
> Skype: hron84
>
>
> Tel: +36 20 235 9621
>
> Sent from my T-Mobile G2
> Ezt a levelet telefonról adták fel, ékezethibákat tartalmazhat.
>
> 2012.08.19. 18:31, "Zsombor" <gzsombor at gmail.com> ezt írta:
>>
>>
>>
>> 2012/8/19 Gábor Garami <gabor.garami at hron.me>
>>>
>>> Sziasztok,
>>>
>>> Egy olyan nyugom van, hogy a spring-gel db-bol nagyon konnyen tudok
>>> kiszedni (olvasni) dolgokat, de amikor modositani kene, az sosem megy.
>>>
>>> Kodok:
>>>
>>> Kontroller:
>>>
>>> @Controller
>>> @RequestMapping("/articles")
>>> public class ArticleContoroller {
>>>   // sok sok blabla
>>>    @RequestMapping(value = "/{id}", method = RequestMethod.POST)
>>>     public String update(@ModelAttribute("article") Article article,
>>> BindingResult result, SessionStatus status) {
>>>         log.info("POST article ID: " + article.getId() + ", title: " +
>>> article.getTitle());
>>>         articleDao.update(article);
>>>         return "redirect:/articles/" + article.getId();
>>>     }
>>> }
>>>
>>> DAO:
>>>
>>> @Component
>>> class ArticleDao {
>>>
>>>   @PersistenceContext private EntityManager em;
>>>
>>>   @Transactional
>>>   public void create(Article a) {
>>>     em.persist(a);
>>>   }
>>>
>>>
>>>   @Transactional
>>>   public void update(Article a) {
>>>     em.merge(a);
>>>   }
>>> }
>>>
>>> Szoval semmi extra. A POST-ban latom, hogy szepen megjon a modositott
>>> adat, de a DB-be mar nem kerul be, a logokban sehol nincs UPDATE (van
>>> persist metodusom is, ott nyilvan INSERT kene - de nincs az se).
>>> Szoval, mintha read-only lenne a db. Pedig nem, joga siman van rajta
>>> irni/olvasni.
>>>
>>> Az applicationContext.xml meg a tobbi konfigos hulyeskedes ebben a
>>> repoban van: git://chocolate.hron.me/hron84/springblog.git (valamikor
>>> csinalok mar webes feluletet ele, meg egyelore nem jutottam hozza....
>>> :S).
>>>
>>> A lenyeg: hihetetlenul idegesito, hogy az app csak felig megy.
>>>
>>> Probaltam teszteket is csinalni, ugyanugy nem tortenik
>>> perzisztalas/mergeles, uj objektumnal (new Article(); beallitgatas,
>>> majd dao.create(a); es nem kap se ID-t, se  a logban INSERT SQL
>>> query-t).
>>>
>>> Mi a szoszt ronthatok el egy ilyen, viszonylag egyszeru dolgon?
>>> Dolgoztam mar sima JPA-val, ott ment a perzisztalas/mergeles siman.
>>>
>>> Amit meg olvastam tippkent, hogy az lehet a baj, hogy a
>>> persistence.xml-ben a transaction-type="RESOURCE_LOCAL" viszont mivel
>>> fejlesztes kozben Jetty-vel futtatok, ott nem igazan tudok JTA-s
>>> cuccot gyartani, mert kettonna siramot kapok olyankor, es az app nem
>>> all fel. Lehet, hogy megis ez a baj?
>>>
>>> Garami Gábor
>>> E-mail: gabor.garami at hron.me
>>> Tel: +36 20 235 9621
>>> MSN: hrgy at vipmail.hu
>>> Skype: hron84
>>
>>
>> Valszeg flush-t kéne hívnod a végén. Mondjuk lehet, hogy ezt megcsinálja a
>> spring alapból is.
>>
>> Zs
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>


További információk a(z) Javalist levelezőlistáról