Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [eclipselink-dev] setProperty(Object,Value) of EM API

From what I can understand the setProperty() method provides a way to allow the JTA / EJB usage to set runtime properties.  Before this was not possible, as the EntityManager is not created by the user but by the container, so properties that could be set in application managed mode, could not be set in container managed mode.  You should be able to set any EntityManager property using this, you just must ensure this is the first thing done to the EntityManager.  The proxy-type, user, password, etc are important to support, as this is how proxy connections must be used if using EJB.

 

 

-----Original Message-----
From: Gordon Yorke
Sent: Monday, March 16, 2009 3:54 PM
To: Dev mailing list for Eclipse Persistence Services
Subject: Re: [eclipselink-dev] setProperty(Object,Value) of EM API

 

Only PERSISTENCE_CONTEXT_CLOSE_ON_COMMIT, PERSISTENCE_CONTEXT_PERSIST_ON_COMMIT, PERSISTENCE_CONTEXT_FLUSH_MODE, VALIDATE_EXISTENCE and FLUSH_CLEAR_CACHE are allowed once an EntityManager has been created.

The message of the illegal argument should state that the property is not valid at this point in the lifecycle of the EntityManager.
--Gordon

Darani Yallapragada wrote:

Hello All:

I am trying to implement 'setProperty(Object,Value)' method of EM API. I have few questions about the implementation :

 We have following properties that are supported properties in EM:

JOIN_EXISTING_TRANSACTION
PERSISTENCE_CONTEXT_REFERENCE_MODE
PERSISTENCE_CONTEXT_CLOSE_ON_COMMIT
PERSISTENCE_CONTEXT_PERSIST_ON_COMMIT
PERSISTENCE_CONTEXT_FLUSH_MODE
ORACLE_PROXY_TYPE
EXCLUSIVE_CONNECTION_MODE
EXCLUSIVE_CONNECTION_IS_LAZY
JTA_DATASOURCE
NON_JTA_DATASOURCE
JDBC_DRIVER
JDBC_URL
JDBC_USER
JDBC_PASSWORD
CONNECTION_POLICY
VALIDATE_EXISTENCE
FLUSH_CLEAR_CACHE

In the above, 'JDBC_DRIVER', 'JDBC_USER', 'JDBC_URL', 'JDBC_PASSWORD' cannot be changed once the connection is already made.

According to the Spec, if the 'value' is not valid , it has to throw 'IllegalArgumentException.' I understand that we got to first check for

properties that should not be changed using 'setProperty() ? What are those properties that should not be changed using 'setProperty()'

And also, does changing any of the properties throw only 'IllegalArgumentException' ?

Thank You

Regards
Darani

 

 
_______________________________________________
eclipselink-dev mailing list
eclipselink-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-dev
  

Back to the top