public class MySessionCustomizer implements SessionCustomizer { private static String schemaName; public static void setSchemaName(String schemaName) { MySessionCustomizer.schemaName = schemaName; } @Override public void customize(Session session) throws Exception { if (StringUtils.hasText(this.schemaName)) { session.getLogin().setTableQualifier(this.schemaName); } } }
package some.java.package; import org.eclipse.persistence.config.SessionCustomizer; import org.eclipse.persistence.sessions.Session; import org.eclipse.persistence.sessions.DatabaseLogin; public class MySessionCustomizer implements SessionCustomizer { private String schema = "some_schema"; public MySessionCustomizer() { schema = ... // read from property, jndi, etc. } public void customize(Session session) { session.getLogin().setTableQualifier(schema); } }
public class Test { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("pp_pu"); EntityManager em = emf.createEntityManager(); Session session = em.unwrap(Session.class); session.getLogin().useExternalTransactionController(); em.getTransaction().begin(); int updates = em.createNamedQuery("CgEstatusEntity.updateById") .setParameter("iCveEstatus", 1) .setParameter("vDescEstatus", "Test9") .executeUpdate(); System.out.println(updates); em.getTransaction().commit(); } }
public void customize(Session session) throws Exception { DatabaseLogin login = session.getLogin(); Connector connector = login.getConnector(); login.setConnector(new ConnectorWrapper(connector, m_onCreationQuery)); }
CustomIdGenerator sequence = new CustomIdGenerator ("my-custom-generator"); session.getLogin().addSequence(sequence);
UUIDSequence sequence = new UUIDSequence("system-uuid"); session.getLogin().addSequence(sequence);
/** * {@inheritDoc} */ @Override public void customize(Session session) throws Exception { String sessionName = session.getName(); // double-checked locking on ConcurrentMap List<Sequence> sequences = sequenceMap.get(sessionName); if (sequences == null) { sequences = sequenceMap.putIfAbsent(sessionName, loadSequences(session)); if (sequences == null) { sequences = sequenceMap.get(sessionName); } } loadQueryCustomizers(session); DatabaseLogin login = session.getLogin(); for (Sequence sequence : sequences) { login.addSequence(sequence); } handleDescriptorModifications(session); }
protected String getSequenceTableName(org.eclipse.persistence.sessions.Session session) { String sequenceTableName = null; if (session.getProject().usesSequencing()) { org.eclipse.persistence.sequencing.Sequence sequence = session.getLogin().getDefaultSequence(); if (sequence instanceof org.eclipse.persistence.sequencing.TableSequence) { sequenceTableName = ((org.eclipse.persistence.sequencing.TableSequence)sequence).getTableName(); } } return sequenceTableName; } }
/** * This returns the Sequence Table's qualified name, without delimiting. * @param session * @return the qualified table name */ protected String getSequenceTableName(Session session) { String sequenceTableName = null; if (session.getProject().usesSequencing()) { Sequence sequence = session.getLogin().getDefaultSequence(); if (sequence instanceof TableSequence) { sequenceTableName = ((TableSequence)sequence).getQualifiedTableName(); } } return sequenceTableName; }
/** * This returns the Sequence Table's qualified name, without delimiting. * @param session * @return the qualified table name */ protected String getSequenceTableName(Session session) { String sequenceTableName = null; if (session.getProject().usesSequencing()) { Sequence sequence = session.getLogin().getDefaultSequence(); if (sequence instanceof TableSequence) { sequenceTableName = ((TableSequence)sequence).getQualifiedTableName(); } } return sequenceTableName; }
DatabaseLogin databaseLogin = session.getLogin();
final DatabaseLogin login = session.getLogin(); final Map<String, Object> props = session.getProperties();
@Override public void customize(Session session) throws Exception { DatasourceLogin login = session.getLogin(); login.setConnector(new ProfilingConnector(login.getConnector())); if (session instanceof ServerSession) { ServerSession serverSession = (ServerSession) session; ConnectionPool pool = serverSession.getReadConnectionPool(); if (pool != null) { Login poolLogin = pool.getLogin(); if (poolLogin instanceof DatasourceLogin) { login = (DatasourceLogin) poolLogin; login.setConnector(new ProfilingConnector(login.getConnector())); } } } } }