You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Brian Fed <br...@gmail.com> on 2010/10/04 19:46:01 UTC

JPA & OpenJPA Best Practices & Performance Tips

I am newbie to JPA and OpenJPA and have couple of questions on the best
practices in using JPA and OpenJPA and any performance tips while using
JPA/OpenJPA.

Here is our application requirement. Basically ours is web based j2ee
application that uses JSF,Spring,OpenJPA and DB2 database. We'll dealing
with lot of data and that means at a single point of time we'll
working(adding, updating, deleting using UI) with min. 100,000+ records in
the database. For example, 20-30 users simultaneously will be using our web
based application and its UI for inserting 100,000 records into the
database, editing 100,000 records in the database, querying the 400,000
records in the database tables etc. These are just few of our application
requirements to demonstrate the volume of data will be dealing at a single
point of time.

Based on aforementioned application requirements, I need inputs from you,
the JPA experts,

A. what are the best practices while using JPA and OpenJPA?

B. what are the various JPA/OpenJPA tips for building the high performance
JPA based applications?
C. for example, for performance reasons is it good to use, for a table
defined in DB2, we have using DB2 IDENTITY COLUMN for
primary keys and rather than using
in JPA @GeneratedValue(strategy=GenerationType.IDENTITY) instead of
@GeneratedValue(strategy=GenerationType.SEQUENCE) or
@GeneratedValue(strategy=GenerationType.TABLE) ?


Thank you in advance for yout time and reply.

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by Kevin Sutter <kw...@gmail.com>.
Once you upgrade to RAD v8 as well, then it all should work magically...
:-)

On Wed, Oct 6, 2010 at 1:54 PM, brian.fed7 <br...@gmail.com> wrote:

>
> That clarifies a lot Kevin. Thank you.
>
>
> Kevin Sutter wrote:
> >
> > Hmmm...  If this works for you, I would be surprised.  Unless all
> > interaction with OpenJPA is done in application-managed mode.  And, thus,
> > you would not be able to take advantage of the container automatically
> > enhancing your Entities.  Here's why...
> >
> > WAS v7 is a Java EE 5 compliant application server.  It knows about the
> > JPA
> > 1.0 specification, APIs, and implementations.  Although JPA 2 is binary
> > compatible with JPA 1 from an application runtime perspective, it does
> > require some new XSD and API updates.  These are packaged as part of the
> > WebSphere runtime in the plugins directory as OSGi bundles.  Without some
> > type of "covert action", WAS v7 only knows about JPA 1.0.
> >
> > Thus, the need for the JPA 2.0 Feature Pack (your later question)...
>  With
> > the OSGi and JPA 2.0 Feature Pack, the WAS v7 environment is upgraded to
> > recognize the XSD's and API's needed for the JPA 2.0 programming model.
> > Of
> > course, WAS continues to support JPA 1.0, but it also can now support JPA
> > 2.0.
> > .....
> > .....
> > .....
> > I think I answered this above.  If you decide to try out the OSGi and JPA
> > 2.0 FeP, then you should also move to the RAD v8 tooling.  This is fully
> > supported with WAS v7 and it also provides the necessary tooling for OSGi
> > and JPA 2.0.
> >
> I'll definitely try to install the "WebSphere Application Server V7 Feature
> Pack for OSGi Applications and Java Persistence API 2.0".
>
> However after installing "WebSphere Application Server V7 Feature Pack for
> OSGi Applications and Java Persistence API 2.0",
> do I need to configure anything w.r.t JPA/OpenJPA for leveraging
> JPA/OpenJPA
> entity classes enhancement inside IBM RAD and its WAS v7.0 test
> environment?
>
> Or
>
> can I assume that after I install ""WebSphere Application Server V7 Feature
> Pack for OSGi Applications and Java Persistence API 2.0"", I'll
> automatically get entity class enhancements
> when my Ear/Web Application is deployed on IBM RAD/WAS v7.0 where my
> Ear/Web
> application is packaged as said below:
> a. I have downloaded the latest OpenJPA 2.0.1 jars and created a java
> utility project(say for example, my-commons) inside RAD and placed the
> OpenJPA jars inside my-commons\lib
> b. declared all my Entities in persistence.xml
> c. use JPA annotations for all my Entities
>
> Could you please clarify?
> --
> View this message in context:
> http://openjpa.208410.n2.nabble.com/JPA-OpenJPA-Best-Practices-Performance-Tips-tp5600136p5608366.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by "brian.fed7" <br...@gmail.com>.
That clarifies a lot Kevin. Thank you.


Kevin Sutter wrote:
> 
> Hmmm...  If this works for you, I would be surprised.  Unless all 
> interaction with OpenJPA is done in application-managed mode.  And, thus, 
> you would not be able to take advantage of the container automatically 
> enhancing your Entities.  Here's why... 
> 
> WAS v7 is a Java EE 5 compliant application server.  It knows about the
> JPA 
> 1.0 specification, APIs, and implementations.  Although JPA 2 is binary 
> compatible with JPA 1 from an application runtime perspective, it does 
> require some new XSD and API updates.  These are packaged as part of the 
> WebSphere runtime in the plugins directory as OSGi bundles.  Without some 
> type of "covert action", WAS v7 only knows about JPA 1.0. 
> 
> Thus, the need for the JPA 2.0 Feature Pack (your later question)...  With 
> the OSGi and JPA 2.0 Feature Pack, the WAS v7 environment is upgraded to 
> recognize the XSD's and API's needed for the JPA 2.0 programming model. 
> Of 
> course, WAS continues to support JPA 1.0, but it also can now support JPA 
> 2.0. 
> .....
> .....
> .....
> I think I answered this above.  If you decide to try out the OSGi and JPA 
> 2.0 FeP, then you should also move to the RAD v8 tooling.  This is fully 
> supported with WAS v7 and it also provides the necessary tooling for OSGi 
> and JPA 2.0. 
> 
I'll definitely try to install the "WebSphere Application Server V7 Feature
Pack for OSGi Applications and Java Persistence API 2.0". 

However after installing "WebSphere Application Server V7 Feature Pack for
OSGi Applications and Java Persistence API 2.0", 
do I need to configure anything w.r.t JPA/OpenJPA for leveraging JPA/OpenJPA
entity classes enhancement inside IBM RAD and its WAS v7.0 test environment?

Or

can I assume that after I install ""WebSphere Application Server V7 Feature
Pack for OSGi Applications and Java Persistence API 2.0"", I'll
automatically get entity class enhancements 
when my Ear/Web Application is deployed on IBM RAD/WAS v7.0 where my Ear/Web
application is packaged as said below: 
a. I have downloaded the latest OpenJPA 2.0.1 jars and created a java
utility project(say for example, my-commons) inside RAD and placed the
OpenJPA jars inside my-commons\lib 
b. declared all my Entities in persistence.xml 
c. use JPA annotations for all my Entities 

Could you please clarify?
-- 
View this message in context: http://openjpa.208410.n2.nabble.com/JPA-OpenJPA-Best-Practices-Performance-Tips-tp5600136p5608366.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by Kevin Sutter <kw...@gmail.com>.
More information for you to chew on...  :-)

On Tue, Oct 5, 2010 at 12:17 PM, brian.fed7 <br...@gmail.com> wrote:

>
> Kevin Sutter wrote:
> >
> > Correct.  If you are using JPA within WebSphere and using
> > container-managed
> > persistence (another "best practice"), then your entities will
> > automatically
> > get enhanced as they are loaded into the Container environment.  This is
> > the
> > case for both the EJB and Web Container scenarios.
> >
> Below are the steps I have done for using OpenJPA in our Ear/Web
> Application
> deployed on IBM RAD/WAS v7.0:
> a. I have downloaded the latest OpenJPA 2.0.1 jars and created a java
> utility project(say for example, my-commons) inside RAD and placed the
> OpenJPA jars inside my-commons\lib
> 2. declared all my Entities in persistence.xml
> 3. use JPA annotations for all my Entities
> With the above mentioned steps, I assume that IBM WAS will automatically
> enhance my Entities and I do not need to do anything extra. Is my
> understanding correct? Also, as you said I am not using any
> container-managed persistence.  or am I missing any configuration or funda
> for leveraging JPA/OpenJPA entity classes enhancement (for performance
> reasons) inside IBM RAD and its WAS v7.0 test environment? Could you please
> clarify ?
>

Hmmm...  If this works for you, I would be surprised.  Unless all
interaction with OpenJPA is done in application-managed mode.  And, thus,
you would not be able to take advantage of the container automatically
enhancing your Entities.  Here's why...

WAS v7 is a Java EE 5 compliant application server.  It knows about the JPA
1.0 specification, APIs, and implementations.  Although JPA 2 is binary
compatible with JPA 1 from an application runtime perspective, it does
require some new XSD and API updates.  These are packaged as part of the
WebSphere runtime in the plugins directory as OSGi bundles.  Without some
type of "covert action", WAS v7 only knows about JPA 1.0.

Thus, the need for the JPA 2.0 Feature Pack (your later question)...  With
the OSGi and JPA 2.0 Feature Pack, the WAS v7 environment is upgraded to
recognize the XSD's and API's needed for the JPA 2.0 programming model.  Of
course, WAS continues to support JPA 1.0, but it also can now support JPA
2.0.


> Kevin Sutter wrote:
> >
> > Excellent.  As an FYI, the OpenJPA 2.0.x service stream ships with the
> > WebSphere OSGi/JPA 2.0 Feature Pack that sits on top of WAS v7.0.  As a
> > WAS
> > v7 customer, this FeP is available for a free download, in case you are
> > interested.  More information can be found here:
> >
> > http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/
> >
> I will start looking at the URL you gave above but please excuse me for my
> curiosity and if I am jumping into questions too early. We are using IBM
> RAD
> and IBM WAS v7.0 test environment inside IBM RAD and I suppose we already
> have OpenJPA in IBM WAS v7.0 test environment when we installed IBM RAD and
> its WAS v7.0 test environment. If my understanding is correct then why do
> we
> need this "WebSphere Application Server V7 Feature Pack for OSGi
> Applications and Java Persistence API 2.0"?
>

I think I answered this above.  If you decide to try out the OSGi and JPA
2.0 FeP, then you should also move to the RAD v8 tooling.  This is fully
supported with WAS v7 and it also provides the necessary tooling for OSGi
and JPA 2.0.

Good luck,
Kevin


>  --
> View this message in context:
> http://openjpa.208410.n2.nabble.com/JPA-OpenJPA-Best-Practices-Performance-Tips-tp5600136p5604045.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by "brian.fed7" <br...@gmail.com>.
Lot of new information I am getting to know from you. Thank you Kevin.


Kevin Sutter wrote:
> 
> Correct.  If you are using JPA within WebSphere and using
> container-managed 
> persistence (another "best practice"), then your entities will
> automatically 
> get enhanced as they are loaded into the Container environment.  This is
> the 
> case for both the EJB and Web Container scenarios. 
> 
Below are the steps I have done for using OpenJPA in our Ear/Web Application
deployed on IBM RAD/WAS v7.0:
a. I have downloaded the latest OpenJPA 2.0.1 jars and created a java
utility project(say for example, my-commons) inside RAD and placed the
OpenJPA jars inside my-commons\lib
2. declared all my Entities in persistence.xml
3. use JPA annotations for all my Entities
With the above mentioned steps, I assume that IBM WAS will automatically
enhance my Entities and I do not need to do anything extra. Is my
understanding correct? Also, as you said I am not using any
container-managed persistence.  or am I missing any configuration or funda
for leveraging JPA/OpenJPA entity classes enhancement (for performance
reasons) inside IBM RAD and its WAS v7.0 test environment? Could you please
clarify ?


Kevin Sutter wrote:
> 
> Excellent.  As an FYI, the OpenJPA 2.0.x service stream ships with the 
> WebSphere OSGi/JPA 2.0 Feature Pack that sits on top of WAS v7.0.  As a
> WAS 
> v7 customer, this FeP is available for a free download, in case you are 
> interested.  More information can be found here: 
> 
> http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/
> 
I will start looking at the URL you gave above but please excuse me for my
curiosity and if I am jumping into questions too early. We are using IBM RAD
and IBM WAS v7.0 test environment inside IBM RAD and I suppose we already
have OpenJPA in IBM WAS v7.0 test environment when we installed IBM RAD and
its WAS v7.0 test environment. If my understanding is correct then why do we
need this "WebSphere Application Server V7 Feature Pack for OSGi
Applications and Java Persistence API 2.0"?

-- 
View this message in context: http://openjpa.208410.n2.nabble.com/JPA-OpenJPA-Best-Practices-Performance-Tips-tp5600136p5604045.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by Kevin Sutter <kw...@gmail.com>.
Hi Brian,
Your original note listed all of these open source projects, including
Spring.  So, I couldn't tell that you were also a WebSphere customer.  I can
give a few details below given that new piece of information...

Kevin

On Mon, Oct 4, 2010 at 11:58 PM, brian.fed7 <br...@gmail.com> wrote:

>
>
> Kevin Sutter wrote:
> >
> > o  Ensure that you are using OpenJPA's entity class enhancement
> > processing.
> > Either at build time, or at run time.  Do not rely on the subclassing
> > support that can be the "fall back" process for monitoring entity usage.
> > Using the entity class enhancement processing [1]  will ensure the best
> > performing and most functional experience with OpenJPA.
> >
> I think if we are using IBM WAS v7.0 then we do not need to worry about JPA
> class enhancement because it was told here
> http://webspherepersistence.blogspot.com/2009/02/openjpa-enhancement.html
> that IBM WAS will automatically take care of Entities enhancement at
> runtime. Please correct me if my understanding is wrong.
>
>
Correct.  If you are using JPA within WebSphere and using container-managed
persistence (another "best practice"), then your entities will automatically
get enhanced as they are loaded into the Container environment.  This is the
case for both the EJB and Web Container scenarios.


>
> Kevin Sutter wrote:
> >
> > o  You don't mention what level of OpenJPA you are looking to use.  I
> > would
> > suggest either OpenJPA 2.0.x or 2.1.x [5].  Both of these service streams
> > support the latest JPA 2.0 specification, along with many other
> > performance
> > and functional improvements over the previous releases.
> >
> Since ours is development application we have the luxury of using latest
> stable OpenJPA v2.1.x binary
>
>
Excellent.  As an FYI, the OpenJPA 2.0.x service stream ships with the
WebSphere OSGi/JPA 2.0 Feature Pack that sits on top of WAS v7.0.  As a WAS
v7 customer, this FeP is available for a free download, in case you are
interested.  More information can be found here:

http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/osgi/


>
> Kevin Sutter wrote:
> >
> > o  Is your database schema fixed (due to past releases) or is it
> flexible?
> > If it's fixed, then I would suggest creating the Entity templates from
> the
> > defined database schema using reverse mapping [6].  This will give you a
> > very good start on the Entities required to interact with your database.
> > You can always tweak them as necessary to add additional data logic, but
> > the
> > meat of the code is done.
> >
> If I understand your point correctly, I think we can use JPA wizards inside
> RAD IDE that can automatically generate Java Entities from an existing
> database rather than manually creating/modifying Java Entities if there is
> a
> change in Database Entities and we do not need to use OpenJPA's reverse
> mapping utilities
>
> http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_reverse
> .
> Please correct me if my understanding is wrong.
>
>
Well...  That's true, you could use the RAD tooling for doing this.  But,
RAD is built on the Eclipse Dali for their JPA support.  This is a good
thing, for most items...  But, in the case of generating Entity code based
on a schema, the OpenJPA reverse mapping facilities are better.  We have a
found gotchas with the Dali Entity generation code, so I would suggest using
the OpenJPA reverse mapping tooling instead.


>
> Kevin Sutter wrote:
> >
> > o  And, concerning your comment about using the DB2 IDENTITY COLUMN.
>  This
> > is what you would get if you use
> > @GeneratedValue(strategy=GenerationType.IDENTITY) with a DB2 database as
> > your configured datasource.  GenerationType.SEQUENCE also uses database
> > facilities for the Sequence processing.  A bit more information can be
> > found
> > here [7].
> >
> This link
>
> http://openjpa.apache.org/builds/2.0.1/apache-openjpa-2.0.1/docs/manual/manual.html#jpa_overview_meta_gen
> does not say which one is
> better for performance reasons and based on my application requirements. I
> suppose DB2 IDENTITY COLUMNS and
> @GeneratedValue(strategy=GenerationType.IDENTITY) are better than any other
> sequence generation strategies for our application requirements. Any
> thoughts on this point?
>

I would venture to say that the IDENTITY generation strategy is slightly
better performing than SEQUENCE, at least in the case of DB2 since they can
natively support IDENTITY generation.  Some databases don't support IDENTITY
columns, so we have to mock up the processing.  If you are using DB2, then I
would probably stick with IDENTITY.

Good luck,
Kevin


>
> --
> View this message in context:
> http://openjpa.208410.n2.nabble.com/JPA-OpenJPA-Best-Practices-Performance-Tips-tp5600136p5601850.html
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by "brian.fed7" <br...@gmail.com>.
First of all thank you for such a detailed response.

Ours is not an existing application that we are refactoring for adding
enhancements but a development-from-scratch application and we are using all
IBM tools like IBM Rational Application Developer (RAD) IDE, IBM DB2, IBM
WebSphere Application Server (WAS) v7.0


Kevin Sutter wrote:
> 
> o  Ensure that you are using OpenJPA's entity class enhancement
> processing.
> Either at build time, or at run time.  Do not rely on the subclassing
> support that can be the "fall back" process for monitoring entity usage.
> Using the entity class enhancement processing [1]  will ensure the best
> performing and most functional experience with OpenJPA.
> 
I think if we are using IBM WAS v7.0 then we do not need to worry about JPA
class enhancement because it was told here
http://webspherepersistence.blogspot.com/2009/02/openjpa-enhancement.html
that IBM WAS will automatically take care of Entities enhancement at
runtime. Please correct me if my understanding is wrong.


Kevin Sutter wrote:
> 
> o  You don't mention what level of OpenJPA you are looking to use.  I
> would
> suggest either OpenJPA 2.0.x or 2.1.x [5].  Both of these service streams
> support the latest JPA 2.0 specification, along with many other
> performance
> and functional improvements over the previous releases.
> 
Since ours is development application we have the luxury of using latest
stable OpenJPA v2.1.x binary


Kevin Sutter wrote:
> 
> o  Is your database schema fixed (due to past releases) or is it flexible?
> If it's fixed, then I would suggest creating the Entity templates from the
> defined database schema using reverse mapping [6].  This will give you a
> very good start on the Entities required to interact with your database.
> You can always tweak them as necessary to add additional data logic, but
> the
> meat of the code is done.
> 
If I understand your point correctly, I think we can use JPA wizards inside
RAD IDE that can automatically generate Java Entities from an existing
database rather than manually creating/modifying Java Entities if there is a
change in Database Entities and we do not need to use OpenJPA's reverse
mapping utilities
http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_reverse.
Please correct me if my understanding is wrong.


Kevin Sutter wrote:
> 
> o  And, concerning your comment about using the DB2 IDENTITY COLUMN.  This
> is what you would get if you use
> @GeneratedValue(strategy=GenerationType.IDENTITY) with a DB2 database as
> your configured datasource.  GenerationType.SEQUENCE also uses database
> facilities for the Sequence processing.  A bit more information can be
> found
> here [7].
> 
This link
http://openjpa.apache.org/builds/2.0.1/apache-openjpa-2.0.1/docs/manual/manual.html#jpa_overview_meta_gen
does not say which one is 
better for performance reasons and based on my application requirements. I
suppose DB2 IDENTITY COLUMNS and
@GeneratedValue(strategy=GenerationType.IDENTITY) are better than any other
sequence generation strategies for our application requirements. Any
thoughts on this point?

-- 
View this message in context: http://openjpa.208410.n2.nabble.com/JPA-OpenJPA-Best-Practices-Performance-Tips-tp5600136p5601850.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Re: JPA & OpenJPA Best Practices & Performance Tips

Posted by Kevin Sutter <kw...@gmail.com>.
Hi Brian,
So many open variables in your scenario, but let me begin with a few
suggestions...  I'm sure others will pipe in with suggestions as well...

o  Ensure that you are using OpenJPA's entity class enhancement processing.
Either at build time, or at run time.  Do not rely on the subclassing
support that can be the "fall back" process for monitoring entity usage.
Using the entity class enhancement processing [1]  will ensure the best
performing and most functional experience with OpenJPA.

o  Use OpenJPA's Level 2 Cache [2] capabilities to minimize the number of
trips to the database.  Especially for the read-only or read-mostly data.
The WebSphere JPA solution uses OpenJPA under the covers, and they have
experienced fantastic SpecJEnterprise benchmark numbers [3] using OpenJPA's
caching capabilities.  You mention DB2, so if there's an outside chance you
would also be using WebSphere, here's an additional read-only object cache
[4] that will provide additional performance benefit.

o  You don't mention what level of OpenJPA you are looking to use.  I would
suggest either OpenJPA 2.0.x or 2.1.x [5].  Both of these service streams
support the latest JPA 2.0 specification, along with many other performance
and functional improvements over the previous releases.

o  Is your database schema fixed (due to past releases) or is it flexible?
If it's fixed, then I would suggest creating the Entity templates from the
defined database schema using reverse mapping [6].  This will give you a
very good start on the Entities required to interact with your database.
You can always tweak them as necessary to add additional data logic, but the
meat of the code is done.

o  And, concerning your comment about using the DB2 IDENTITY COLUMN.  This
is what you would get if you use
@GeneratedValue(strategy=GenerationType.IDENTITY) with a DB2 database as
your configured datasource.  GenerationType.SEQUENCE also uses database
facilities for the Sequence processing.  A bit more information can be found
here [7].

Hope this helps get you started!

Kevin

[1]
http://webspherepersistence.blogspot.com/2009/02/openjpa-enhancement.html
[2]
http://openjpa.apache.org/builds/2.0.1/apache-openjpa-2.0.1/docs/manual/manual.html#ref_guide_caching
[3]  http://www.spec.org/jEnterprise2010/results/jEnterprise2010.html
[4]
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.jpafep.multiplatform.doc/info/ae/ae/tejb_jpaobjectcache.html
[5]  http://openjpa.apache.org/downloads.html
[6]
http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_reverse
[7]
http://openjpa.apache.org/builds/2.0.1/apache-openjpa-2.0.1/docs/manual/manual.html#jpa_overview_meta_gen

On Mon, Oct 4, 2010 at 12:46 PM, Brian Fed <br...@gmail.com> wrote:

> I am newbie to JPA and OpenJPA and have couple of questions on the best
> practices in using JPA and OpenJPA and any performance tips while using
> JPA/OpenJPA.
>
> Here is our application requirement. Basically ours is web based j2ee
> application that uses JSF,Spring,OpenJPA and DB2 database. We'll dealing
> with lot of data and that means at a single point of time we'll
> working(adding, updating, deleting using UI) with min. 100,000+ records in
> the database. For example, 20-30 users simultaneously will be using our web
> based application and its UI for inserting 100,000 records into the
> database, editing 100,000 records in the database, querying the 400,000
> records in the database tables etc. These are just few of our application
> requirements to demonstrate the volume of data will be dealing at a single
> point of time.
>
> Based on aforementioned application requirements, I need inputs from you,
> the JPA experts,
>
> A. what are the best practices while using JPA and OpenJPA?
>
> B. what are the various JPA/OpenJPA tips for building the high performance
> JPA based applications?
> C. for example, for performance reasons is it good to use, for a table
> defined in DB2, we have using DB2 IDENTITY COLUMN for
> primary keys and rather than using
> in JPA @GeneratedValue(strategy=GenerationType.IDENTITY) instead of
> @GeneratedValue(strategy=GenerationType.SEQUENCE) or
> @GeneratedValue(strategy=GenerationType.TABLE) ?
>
>
> Thank you in advance for yout time and reply.
>