Hi,
I have been trying to find a best practice for tapestry-hibernate, looks
like there is none yet, here is an approach that I would do if the tools
were still dbase/Clipper at this time, very old fashion, but seems working,
no issue at all with @Persist, detached objects, any comments?

public class TestCat {

    private Cat cat;
    public String getName() { return cat.getName();}
    public void setName(String name) { cat.setName(name);}
    public String getGender() { return cat.getGender(); }
    public void setGender(String gender) {cat.setGender(gender);}

    String onSuccess(String id2) {
        if (catid == -1)
            _session.persist(cat);
        else {
            Cat oldCat = (Cat) _session.load(Cat.class, catid);
            oldCat.setGender(cat.getGender());
            oldCat.setName(cat.getName());
        }
        return null;
    }

    @Component
    private Form myForm;

    public void onValidate(String id) throws EncoderException {
        if (!cat.getGender().equals("m"))
            myForm.recordError("we are looking for male cat only");
    }

    @Inject private Session _session;

    private Long catid;

    public void onActivate(Long id) {
        catid = id;
        cat = new Cat(); // set up a buffer for editing
        if (id > 0) {    // copy contents, this might be a waste of cpu
resources, but life is easier
            Cat oldCat = (Cat) _session.load(Cat.class, id);
            cat.setGender(oldCat.getGender());
            cat.setName(oldCat.getName());
        }
    }

    public Long onPassivate() { return catid; }
}


-- 
View this message in context: 
http://www.nabble.com/T5%3A-CRUD-basic-practice--tf4885903.html#a13984740
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to