users@glassfish.java.net

Re: TLE vs Hibernate

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Thu, 15 Mar 2007 15:54:47 -0700

Jason,

Are you using the latest v2 build?

thanks,
-marina

Jason Lee wrote:
> In all of our apps, we are currently using Hibernate as the JPA provider
> due to what we (read as, I) understood to be a bug in TLE with regard to
> SequenceGenerators and PostgreSQL. I'd really like to use TLE, as I'm
> not a big fan of the extra configuration step in setting up our
> applications, nor am I, as our de facto GlassFish admin, a big fan of
> the extra installation step of adding the Hibernate jars to the server.
> Those are two points of failure I'd like to avoid. To that end, I
> started testing an app of mine using TLE and hit a snag. Here's part of
> my entity POJO:
>
> @Entity
> @Table(name = "engineers")
> @SequenceGenerator(name = "ENGINEERS_SEQ", allocationSize = 1,
> sequenceName = "engineers_seq")
> public class Engineer implements Serializable {
> @Id
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> "ENGINEERS_SEQ")
> protected Integer id;
> With Hibernate, when I would create a new Engineer object, i could just
> call entityManager.persist(engineer) and be done with it. When switch
> to TLE, the database barks because the ID has not been set. Short of
> changing the tables to have a default value of nextval($SEQ_NAME), how
> do I approach this using TLE?
>
> I even tried this:
>
> @Id
> @SequenceGenerator(name = "ENGINEERS_SEQ", allocationSize = 1,
> sequenceName = "engineers_seq")
> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator =
> "ENGINEERS_SEQ")
> @Column
> protected Integer id;
> based on the documentation here
> http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#SequenceGenerator with
> no love. :)
>
> -----
> Jason Lee, SCJP
> Senior Software Engineer
> http://www.iec-okc.com <http://www.iec-okc.com/>
>