[Javalist] Spring perszisztalas/merge nem megy

Zsombor gzsombor at gmail.com
2012. Aug. 19., V, 18:31:06 CEST


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
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120819/8c5048ad/attachment.html>


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