Toplink support for JPA vs. Toplink Essentials

I think I read that Toplink has some support for EJB3/JPA as does Toplink Essentials.
What is the difference in features?
If one has a 10.1.3 app server license, should Toplink be used instead of Toplink Essentials for EJB3/JPA applications?
Does the Mapping Workbench produce JPA object-relational mapping annotations or XML?
Thank you.
Richard Catlin

Hi Robert,
I'm not sure which comments you were directing specifically to Dali vs. JDeveloper but I'll try and address them from a Dali perspective. I do want to point out that Dali is at 0.5 and so it is still under development.
yes you get a basic 1:1 entity from your databasetables...When generating Entities from tables, Dali will generate 1:1 and 1:many relationships based on database FK constraints.
@temporary annotations are not inserted if you have a Date oder Calendar type.Also when generating Entities from tables Dali will generate an instance variable of java.sql.Date for a database date column. java.sql.Date does not require an @Temporal annotation.
What's missing right now is a problem marker for missing @Temporal on java.util.Date and java.util.Calendar.
If you want to rename attributes or methods it's a lot of manual work to do... because >@Column annoations are not inserted, if they do not exist because of >dbname=attributenameThere is a bugzilla bug opened for this refactoring support. https://bugs.eclipse.org/bugs/show_bug.cgi?id=136333 Fortunately in Dali if you rename a class or attribute (field/getter) and your explicit or default mappings are broken you will get a problem marking on the attribute and in the Problems view so you can fix it rather than finding out at runtime.
generics are not inserted in the returnvalues of the methods...Generated Entities do use generics correctly e.g.:
public class Publisher implements Serializable {
     @OneToMany(mappedBy="publisher")
     private Set<Title> titles;
     public Set<Title> getTitles() {
          return this.titles;
     public void setTitles(Set<Title> titles) {
          this.titles = titles;
...--Shaun                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Similar Messages

  • Toplink support for weblogic 9

    Hi ,
    Is toplink supported with weblogic 9?If yes,which version?
    There is a thread(on OTN) that speaks about toplink support for weblogic 9.
    Weblogic 9 -TopLink CMP
    Thanks,
    Rajbharat

    Rajbharat,
    We have completed our testing of POJO architectures and the WebLogic Support Matrix now reflects this:
    Doug

  • Toplink support for Java 5.0

    I tried to import java classes, compiled with jdk 5.0
    into Toplink workbench. The mapping fails.
    I tried to run the workbench with jre 5.0 but that didn't work either.
    Does anyone know how to do it and does Toplink even have a version that supports java 5.0?

    Anna,
    TopLink 10.1.3 will offer formal support for Java 5.0. Currently the runtime should work fine with Java 5.0. The only issue may be the workbench mapping process depending on the version of TopLink you are using.
    If you are using the 10.1.3 preview the workbench will still run with JDK 1.4 but should be compatible with importing and mapping classes compiled with JDK5. We will upgrade the JRE used by the workbench to JDK5 for the production release but this should not make any difference to your ability to map JDK 1.4 or 5 classes and use either at runtime.
    If you are using 9.0.4.X then the workbench will not be able to run or import JDK5 compiled classes. I believe the runtime is fine but not certified. For this environment you will need to compile the classes under JDK 1.4 and map this version of the classes. You can then use JDK5 compiled version in conjunction with the runtime.
    I hope this helps,
    Doug

  • TopLink support for JDO?

    Hi,
    I'm new to TopLink and am wondering what the status of JDO support is in 4.6. I can see that there is a JDO example, and that the RELNOTES indicate JDO support. But the level of spec compliance and JDO specific tools in TopLink are not documented AFAIK.

    I finally found the javadocs in the TopLink 4.6 distribution. From these, plus from the examples, it seems to me that the TopLink JDO 1.0 support is partial.
    They do provide partial implementations to most of the JDO interfaces in javax.jdo package. The one exception is javax.jdo.InstanceCallbacks. What I mean by partial is that some required methods are no-ops (no operation). No-ops do nothing and return null or zero depending on their return type.
    They don't support the JDO query language. You can use their implementation of javax.jdo.Query to create a query using SQL, TopLink query language, or EJBQL.
    They don't support the enhancer. The enhancer is controversial, therefore some people see this as a good thing.
    I ran a little program to display the results of PersistenceManagerFactory.supportedOptions() for TopLink.
    SUPPORTED OPTIONS
    javax.jdo.option.NontransactionalRead
    javax.jdo.option.ArrayList
    javax.jdo.option.HashMap
    javax.jdo.option.Hashtable
    javax.jdo.option.LinkedList
    javax.jdo.option.ArrayList
    javax.jdo.option.TreeMap
    javax.jdo.option.TreeSet
    javax.jdo.option.Vector
    javax.jdo.option.Map
    javax.jdo.option.List
    javax.jdo.option.Array
    UNSUPPORTED OPTIONS
    javax.jdo.query.JDOQL
    javax.jdo.option.RestoreValues
    javax.jdo.option.NullCollection
    javax.jdo.option.NontransactionalWrite
    javax.jdo.option.TransientTransactional
    javax.jdo.option.RetainValues
    javax.jdo.option.NonDatastoreIdentity
    javax.jdo.option.Optimistic
    javax.jdo.option.DatastoreIdentity
    javax.jdo.option.ApplicationIdentity
    I'm not sure why the javax.jdo.query.JDOQL option even exists. As I understand it support for the JDOQL is mandatory, not optional. But maybe this is a versioning thing. That is, maybe JDO 2.0 will allow implementations to provide JDOQL 1.0 and/or JDOQL 2.0. Just a guess.
    Hope this helps.

  • Toplink support for DB2

    I was wondering if anyone had any experiences with Toplink's support for DB2? If I have an existing application working with Oracle, is it easy to get the application working with a DB2 database or another DBMS such as SQL Server, etc.? Obviously, the different vendors have different conformities to the SQL syntax standard, and I was wondering if Toplink took these differences into account?
    Thanks,
    Ted

    I don't know of any specific papers/docs on this.
    The nature of TopLink is supporting any app server, any ide/toolset and any Database. For example, look in the source.zip file in your lib directory for TopLink... Notice there is a DB2Platform.java file in there. If there were any specific compatibility or idiosynchracies we hadn't accounted for (but we have), you could easily do so yourself just by modifying that class. We have cusotmers using dozens and dozens of different database variants just by using and modifying any of the Platform code provided...
    - Don

  • TopLink support for version 2.0/2.1 of ejbql

    Hello,
    TopLink support ejbql for pojo finders.
    What version of ejbql is supported in toplink 9.0.4.8 : 2.0 or 2.1 ?
    What version of ejbql is supported in future release (10.1.3) of toplink : 2.0 or 2.1 ?
    Regards

    I believe the answer to both is 2.1.
    Doug

  • TopLink support for Stored Functions

    I know that TopLink supports PL/SQL stored procedures. What I haven't been able to figure out is whether or not TopLink also supports functions as well. Is there any way to execute a PL/SQL function using the TopLink APIs? Thanks. -Michael-

    You can find additional information (including examples of usage) on using Stored Functions in the TL Dev Guide: http://download.oracle.com/otn_hosted_doc/toplink/1013/MAIN/_html/qrybas004.htm#BCFBBJBJ

  • Toplink support for RAC Failover

    We need to enable Toplink to support RAC Fast Connection Failover. We need to support
    only read query retry functionality and not write query retry. We found one document
    (http://www.oracle.com/technology/events/develop2007/presentations/oracle_jdbc_high_availability_load_balancing_best_practices_and_road_map.pdf)
    that explains how to configure JDBC connection for RAC failover. However, since we
    are using Toplink, we don't explicitly write our own jdbc url and toplink's session/uow
    will automatically handle the actual sql query execution.
    Is there any way we can configure Toplink to support RAC Fast Connection Failover, such
    as possibly in the toplink's sessions.xml or in the oc4j container's connection pools setting?
    Just for information, the way we acquire Toplink session is through SessionFactory:
       SessionFactory sessionFactory = new SessionFactory("repository",
                                     "META-INF/repository-sessions.xml");
       Session toplinkSession = sessionFactory.acquireSession();Then we do queries, acquiring unit of work, etc, using that toplinkSession.
    Thanks.

    We have enhanced our RAC FCF support in 11gR1 leveraging the new Universal Connection Pool to make it more seamless to the application. Which version of TopLink and OC4J are you using?
    Doug

  • Toplink support for SQL Server 2005 on Websphere 6.1

    Hi,
    We are using toplink in our application, it works fine when we use it with weblogic & SQL server or WAS 6.1 with Oracle or DB2. But when we use it with WAS 6.1 and SQL Server 2k5, it just does not work. It takes up all the connections in the pool and never returns it and starts giving connection time out errors.
    Internal Exception: com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException: Connection not available, Timed out waiting for 100005Error Code: 0
    Thanks

    This sounds like a WebSphere connection pool issue, I'm not sure why WebSphere would not work with SQL Server.
    You could try using TopLink's internal connection pooling instead.
    EclipseLink : http://www.eclipselink.org

  • Toplink support for stored procedure with 2 OUT  REF CURSOR ?

    Can Toplink StoredProcedureCall be used with Oracle PLSql procedure with 2 OUT parameters. Parameter type is Ref Cursor (Oracle PLSQL resulset)
    Regards

    In a TopLink StoredProcedureCall using an OUT CURSOR the cursor is assumed to map to the result set for the TopLink query.
    For example if you had a stored procedure READ_ALL_EMP that returned a out cursor of EMP rows, you could use that procedure in a TopLink mapped Employee class mapped to the EMP table and use the stored procedure in a ReadAllQuery for the Employee class.
    If the procedure does not return data that maps to objects, you can use a DataReadQuery to access the data. The out cursor would be returned as a Vector of DatabaseRows that contain the data from the cursor rows.
    If the procedures data is complex and does not map to objects, it may be better to access the procedure directly through JDBC.

  • Kodo 4 seems to have incomplete support for JPA spec

    I posted a message previously about the incomplete persistence.xml schema. I have again run into this problem and would appreciate anyone from BEA (if they still read this forum) clearing the matter up. I am trying to evaluate this product for use and need to confirm if some features are available.
    I tried using the <jar-file> attribute in my persistence.xml and got the following error when enhancing:
    java.util.MissingResourceException: <0|false|4.0.1> kodo.util.GeneralException: org.xml.sax.SAXException: file:/D:/Code/JPAView/xsm_Config/ssmmodule/META-INF/persistence.xml [Location: Line: 7, C: 19]: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'jar-file'. One of '{"http://java.sun.com/xml/ns/persistence":class, "http://java.sun.com/xml/ns/persistence":exclude-unlisted-classes, "http://java.sun.com/xml/ns/persistence":properties}' is expected.
    This implies that Kodo does not even support the vast majority of attributes allowed in persistence.xml, as defined in the JPA spec (page 135).
    Perhaps I am approaching the issue in the wrong way, as I am attempting to re-use entities over persistence units. I would prefer that higher-level libraries would be able to re-use entity definitions in a support libraries, by specifying the jar in persistence.xml. I cannot find another way to re-use entity definitions, apart from manually listing every single shared entity in higher-level persistence.xml files.

    This implies that Kodo does not even support the vast
    majority of attributes allowed in persistence.xml, as
    defined in the JPA spec (page 135).This is not a correct inference as Kodo does process <jar-file> and other tags as per JPA spec http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd.
    It would be useful to analyze persistence.xml and the environment setup to ensure that correct META-INF/persistence.xml is being picked up by Kodo runtime.
    You can maintain a hierarchy of persistent domain model following the approach you outlined.

  • Support for the Windows Live Essentials Suite

    Hi,
    I use the new Windows Live Essentials Suite to store my Contacts, write and receive Emails or to vie the calender. Is there any chance to get these Apps supported in a new iTunes release so that I can sync all of this information with my iPod Touch ?
    Best Regards,
    swiffer

    It would be up to Microsoft do make an App. If Microsoft enabled exchange support like Google Sync , or Nuevasync, you could do it as the iPhone/iPod touch supports Exchange.
    Message was edited by: ouimetnick

  • How to verify OC4J uses Oracle Toplink 10.x and not Toplink Essentials

    Hi,
    We dont want to use the default JPA provider "Toplink *Essentials*" that comes with OC4J. Rather we want to use Oracle Toplink 10.x
    I downloaded [Oracle Toplink 10.x|http://www.oracle.com/technology/software/products/ias/htdocs/1013topsoft.html] and followed the installation instructions:- http://www.oracle.com/technology/products/ias/toplink/doc/10131/install/install.html#CHDBBIFB
    When i deploy my EJB 3.0 appliation and invoke a JPA Entity, i can see the server log:- NOTIFICATION TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
    Do i have to do any other configuration/setting to ensure that i use Oracle Toplink and not Toplink Essentials in OC4J?
    Thanks in Advance,
    Prashant Tejura
    Edited by: user1186295 on May 26, 2009 10:33 AM

    rashant,
    Hi, there are currently the following providers to choose from - you may want to consult your rep for any details on moving from 10.1.3.4 to 10.1.3.5.
    1) TopLink or EclipseLink using EclipseLink JPA - the RI for JPA for WebLogic, OC4J and GlassFish
    - EclipseLink JPA is focus of all current JPA development as part of EclipseLink and TopLink
    2) Another open-source JPA implementation like OpenJPA or Hibernate
    Deprecated:
    3) TopLink using TopLink JPA - replaced by (1) TopLink using EclipseLink JPA
    4) TopLink using TopLink Essentials JPA - replaced by (1) TopLink using EclipseLink JPA
    Changes to server.xml as follows:
    http://wiki.eclipse.org/EclipseLink/Examples/JPA/OC4J_Web_Tutorial#Modify_server.xml
    <shared-library name="oracle.persistence" version="1.0" library-compatible="true">
              <code-source path="../../../eclipselink/eclipselink.jar"/>
              <code-source path="../../../eclipselink/javax.persistence_*.jar"/>
              <import-shared-library name="oracle.jdbc"/>
         </shared-library>
    Changes to persistence.xml as follows: (container-managed JTA datasource)
    http://wiki.eclipse.org/EclipseLink/Examples/JPA/OC4J_Web_Tutorial#Persistence.xml
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    <persistence-unit name="example" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/OracleDS</jta-data-source>
    <class>org.eclipse.persistence.example.jpa.server.business.Cell</class>
    <properties>
    <property name="eclipselink.target-server" value="OC4J"/>
    <property name="eclipselink.logging.level" value="FINEST"/>
    </properties>
    </persistence-unit>
    </persistence>
    You should see output similar to the following in your server log:
    http://wiki.eclipse.org/EclipseLink/Examples/JPA/OC4J_Web_Tutorial#Console_Output
    [EL Finest]: 2009-02-26 14:04:34.464--ServerSession(8634980)--Thread(Thread[HTTPThreadGroup-4,5,HTTPThreadGroup])--Begin deploying Persistence Unit example; state Predeployed; factoryCount 1
    [EL Info]: 2009-02-26 14:04:34.542--ServerSession(8634980)--Thread(Thread[HTTPThreadGroup-4,5,HTTPThreadGroup])--EclipseLink, version: Eclipse Persistence Services - ***
    [EL Fine]: 2009-02-26 14:04:35.213--Thread(Thread[HTTPThreadGroup-4,5,HTTPThreadGroup])--Detected Vendor platform: org.eclipse.persistence.platform.database.oracle.Oracle10Platform
    [EL Config]: 2009-02-26 14:04:35.26--ServerSession(8634980)--Connection(5230779)--Thread(Thread[HTTPThreadGroup-4,5,HTTPThreadGroup])--Connected: jdbc:oracle:thin:@//1y.yyy.yy.yy:1521/ORCL
         User: SCOTT
         Database: Oracle Version: Oracle Database 11g Release 11.1.0.0.0 - Production
         Driver: Oracle JDBC driver Version: 10.1.0.5.0
    [EL Finest]: 2009-02-26 14:04:35.385--UnitOfWork(5746770)--Thread(Thread[HTTPThreadGroup-4,5,HTTPThreadGroup])--PERSIST operation called on: org.eclipse.persistence.example.jpa.server.business.Cell@9107088( id: null state: null left: null right: null parent: null references: null).
    [EL Fine]: 2009-02-26 14:04:35.807--ClientSession(5748500)--Connection(6653899)--Thread(Thread[HTTPThreadGroup-4,5,HTTPThreadGroup])--INSERT INTO EL_CELL (ID, STATE, TSEQ, RIGHT_ID) VALUES (?, ?, ?, ?)
         bind => [551, null, null, null]
    thank you
    /michael
    www.eclipselink.org

  • Does BC4J works as ORM (eg: Toplink) to support for MSQL Server / Oracle DB

    Hi,
    My current product is running on Struts 1.1, Apache Cocoon(for reports generation), JDBC & MS SQL Server environment.
    To provide the more flexibility & user friendliness to the application I have a proposal for the re-development of the application with ADF 11g.
    But the main concern here is, the current product is running on MS Sql Server DB, now the product team has a future plan to migrate it to Oracle Database. In view of this DB migration, the frame work/environment that I choose for the re-development must support for very less code changes (at least from the Application Business logic/Queries prospective)
    Here I have two options for the re-development
    1. ADF 11g + Top-link (ORM) + MS Sql Server / Oracle DB
    2. ADF 11g + BC4J + MS Sql Server / Oracle DB
    Plz suggest me, out of these two options which one suits for my requirement & better in performance too

    Check this out:
    http://www.oracle.com/technology/products/jdev/collateral/papers/11/certification/index.html#Databases
    Also
    http://www.oracle.com/technology/products/jdev/11/how-tos/multidatabaseapp.html
    Have a nice day

  • JPA Project, TopLink Server session and ClassLoader issue

    hi,
    I'm working on the project where JPA annotations are used to describe the mapping between POJOs and the database tables. JpaHelper class is used to bridge the gap between toplink-essentials and toplink. The EntityManagerFactory and the oracle.toplink.threetier.Server are obtained as following:
    emf = JpaHelper.getEntityManagerFactory(Persistence.createEntityManagerFactory("myUnit"));
    server = JpaHelper.getServerSession(emf);
    Due to different functional and architectural constraints the same Server session has to be shared across different web applications. Thus the EntityManagerFactory has been bound to Weblogic JNDI tree and used by web applications to obtain Server session. It works very well for the very first client that is trying to query the data, but due to the fact that in the web container different web applications are using different ClassLoaders the QueryException “Missing descriptor for [class ...]” is being thrown for all consecutive call from other web applications. The same behaviour is observer after re-deploying the “first” application.
    Going throughout different threads in the forum I learned that it could be solved for the "pure TopLink" projects where “sessions.xml” is used as following:
    oracle.toplink.internal.helper.ConversionManager.getDefaultManager().setShouldUseClassLoaderFromCurrentThread(true);
    boolean shouldLoginSession = true;
    boolean shouldRefreshSession = true;
    boolean shouldCheckClassloader = true;
    session = SessionManager.getManager().getSession(new XMLSessionConfigLoader(), "mySession",
    Thread.currentThread().getContextClassLoader(), false, true, true);
    Could you please let me know if there is something similar for JPA projects where “sessions.xml” isn’t used or other options have to be considered?
    regards,

    I am not completely sure I understand what product and version you are using. TopLink Essentials and Oracle TopLink are independent products. They share the same heritage and much of the same functionality but typically you would only use one of them in an application.
    If you have multiple web applications (WAR) that need to share the same JPA persistence unit I would package all of the JPA classes in their own JAR file and co-locate all of these WARs with the persistence JAR in a single EAR file. This should give you the capability to share the classes across the web applications.
    Doug

Maybe you are looking for