You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-user@db.apache.org by Thomas Fischer <tf...@apache.org> on 2005/11/01 10:11:44 UTC

Re: Specifying the PK manually (Torque 3.1)

Hi,

From a simple point of view, the behavoiur you describe is not what one 
would want.
However, I am of the opinion that this should not be changed in the 
forthcoming 3.2 release, because it would break backwards compatibility.

Internally, doInsert calls the generated method BaseAuthorPeer.buildCriteria(), which 
inserts the Id only if the author is not new. The buildCriteria() method 
is also called from the doUpdate methods, and also in the Manager class, 
and cannot be changed easily. Of course, one can create Yet Another Method 
to accomplish this, making the classes even more complicated, which I 
would want to avoid.

If you want, open a Bug report in scarab, it might be considered in a post 
3.2 release (also depends on what the other deveolpers think about it)

   Thomas

On Fri, 21 Oct 2005, Vitzethum, Daniel wrote:

> Hello all,
>
> the following behavior just surprised me a bit: ;-)
>
> When creating a new instance of an OM object, setting the pk maually and saving
> it, the PK will be ignored. If a id method is specified, the pk will be retrieved from
> there (e.g. Oracle Sequence).
>
> When specifying the values via a Criteria object, I can set the PK and it will be
> considered when saving. If the PK already exits, the DB throws an error, certainly.
>
> Here's the example code:
>
>  // when saving an author, pk is ignored
>  Author a1 = new Author();
>  a1.setAuthorId(999);
>  a1.setLastName("Knallinger");
>  a1.setFirstName("Ingnoratio");
>  AuthorPeer.doInsert(a1);
>
>  // by criteria, pk will be used
>  Criteria c = new Criteria();
>  c.add(AuthorPeer.AUTHOR_ID, 999);
>  c.add(AuthorPeer.LAST_NAME, "Kn�llinger");
>  c.add(AuthorPeer.FIRST_NAME, "Karl");
>  AuthorPeer.doInsert(c);
>
> Is this behavior considered to be correct (what is the background, then), or not?
>
>
> Daniel
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
>
>