Alexey, I would be interested in writing something useful for Jboss users if
possible. Where shall I implemented the bottom interfaces? In an ordinary
class? In an EJB? Shall I write any code for getFactoryName() and
getKeyGenerator()? Is the <entity-command> element support by XDoclet AFAYK?
May the bottom mentioned interfaces implemented in the same class? At
present we are deciding if implementing Marco Garbelini's solution or a
built in solution (by means of a synchronized method). In any case, I will
probably ask to one of my developers to build this solution with you, if
that is ok for you.

Regards,

Marco
----- Original Message ----- 
From: "Alexey Loubyansky" <[EMAIL PROTECTED]>
To: "Marco Tedone" <[EMAIL PROTECTED]>
Sent: Thursday, June 26, 2003 9:51 AM
Subject: Re[2]: [JBoss-user] Question about CMP entity


> You need to implement two interfaces (in package
org.jboss.ejb.plugins.keygenerator)
> public interface KeyGenerator
> {
>    public Object generateKey();
> }
>
> public interface KeyGeneratorFactory
> {
>    public String getFactoryName();
>    public KeyGenerator getKeyGenerator() throws Exception;
> }
>
> Then deploy/bind the factory to JNDI and declare entity-command in
> jbosscmp-jdbc.xml supplying fractory's JNDI name, for example
>       <!-- uses key generator to fetch the next key value -->
>       <entity-command name="key-generator">
>          <attribute
name="key-generator-factory">UUIDKeyGeneratorFactory</attribute>
>       </entity-command>
>
> In ejbCreate container calls KeyGenerator.generateKey() to set PK
> value.
>
> There is UUID key generator in 3.2 and there is HiLo generator
> (something like you are going to implement with EJBs) in HEAD.
>
> If you really would like to go this route, feel free to contact me.
>
> BTW, key generation welcomes contributions. In 4.0 it is also used for
> our JDO implementation JBossDO. If anyone is interested in
> contribution, please, contact me.
>
> alex
>
> Thursday, June 26, 2003, 10:15:30 AM, Marco Tedone wrote:
>
> MT> Thank you Alex, I have already received a possible solution from Marco
> MT> Garbelini and I'll try it, but particularly, the one you are
suggesting (my
> MT> own key generator class) sounds interesting. How could I implement it
in the
> MT> EJB CMP architecture?
>
> MT> Marco
> MT> ----- Original Message ----- 
> MT> From: "Alexey Loubyansky" <[EMAIL PROTECTED]>
> MT> To: "Marco Tedone" <[EMAIL PROTECTED]>
> MT> Sent: Thursday, June 26, 2003 7:12 AM
> MT> Subject: Re: [JBoss-user] Question about CMP entity
>
>
> >> Hello Marco,
> >>
> >> if the problem really is a primary key generation you could consider
> >> entity-commands in JBoss-3.2.
> >> The options are:
> >> - database key generation (sequences, etc);
> >> - custom sql;
> >> - you can supply your own key generator class that will be asked for
> >>   the next key;
> >> - JDBC3.0 PreparedStatement.getGeneratedKeys().
> >>
> >> alex
> >>
> >> Thursday, June 26, 2003, 1:06:43 AM, Marco Tedone wrote:
> >>
> >> MT> Sorry guru for the [silly] question: I am having a discussion with
> MT> people in
> >> MT> my project regarding the container work with CMP entity beans. More
> >> MT> specifically, we want to implement a Numerator table to assign
numbers
> MT> to
> >> MT> several entities of our model.
> >>
> >> MT> Suppose a client wants to assign a value to a peopleId field in a
> MT> People
> >> MT> table, then it will in order:
> >>
> >> MT> 1) Access the Numerator table (behind a CMP entity bean)
> >> MT> 2) Retrieve the value from the number field;
> >> MT> 3) Assign that value to peopleId
> >> MT> 4) Increment the value by 1
> >>
> >> MT> What I am saying to the guys in the project is that the container
> MT> (Jboss in
> >> MT> our case) could ensure that, from the moment when the number is
> MT> retrieved to
> >> MT> the moment when the number is  incremented by 1 nobody else will be
> MT> able to
> >> MT> alter the value of the number field in the Numerator table. Someone
is
> >> MT> replying that we should implement a synchronized method. Is that
> MT> really
> >> MT> necessary? I'm quite sure that there is a way to instruct the
> MT> container to
> >> MT> 'lock' in a certain sense the value of the number field. One way
could
> MT> be a
> >> MT> transaction (shall we use synchronization in this case?); is there
> MT> anything
> >> MT> simplier?
> >>
> >> MT> Many thanks for your time,
> >>
> >> MT> Marco
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: INetU
> Attention Web Developers & Consultants: Become An INetU Hosting Partner.
> Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
> INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
>





-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to