[Javalist] Spring perszisztalas/merge nem megy

Gábor Garami gabor.garami at hron.me
2012. Aug. 19., V, 04:22:41 CEST


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


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