Kevin - >It sounds like this plugin is not performing the enhancement processing and, thus, the entities are falling back to the old subclassing support (which is known to have issues). I think what is happening is even worse than running with subclassing... If I remember correctly the classes do implement PersistenceCapable, they just don't implement it correctly. I opened a JIRA[1] for this issue a while back.
[1] https://issues.apache.org/jira/browse/OPENJPA-1879 Thanks, Rick On Mon, Feb 21, 2011 at 1:19 PM, Kevin Sutter <[email protected]> wrote: > Okay, but if there's a problem with the OpenJPA Eclipse plugin, shouldn't > that be fixed? It sounds like this plugin is not performing the > enhancement > processing and, thus, the entities are falling back to the old subclassing > support (which is known to have issues). > > Kevin > > On Sun, Feb 20, 2011 at 9:07 AM, Rick Curtis <[email protected]> wrote: > > > Lucky guess! > > > > Thanks, > > Rick > > > > On Feb 20, 2011, at 2:17 AM, Chris Joysn <[email protected]> wrote: > > > > > That was a good hint :) > > > > > > i was using the OpenJPA Eclipse Plugin to enhance the entities, and it > > seems > > > that > > > this caused the problem. Now i am enhancing using ant and the > > PCEnhancerTask > > > and the loading of the @Id column works. > > > > > > Thanks, > > > Chris > > > > > > 2011/2/20 Rick Curtis <[email protected]> > > > > > >> How are you enhancing your entities? > > >> > > >> Thanks, > > >> Rick > > >> > > >> On Feb 19, 2011, at 5:07 PM, Chris Joysn <[email protected]> wrote: > > >> > > >>> Hello, > > >>> > > >>> when i load an entity the id value is not populated. The entity that > > was > > >>> created using the following test code has the id attribute set > correct, > > >>> and i can verify this in the database table too, but when i re-read > the > > >>> entity the id attribute is not populated. > > >>> > > >>> -----8<----- > > >>> em = getEntityManagerFactory().createEntityManager(); > > >>> > > >>> EntityTransaction tx = em.getTransaction(); > > >>> tx.begin(); > > >>> > > >>> // insert order > > >>> > > >>> Order order = new Order(); > > >>> order.setStatus("testStatus"); > > >>> em.persist(order); > > >>> > > >>> tx.commit(); > > >>> > > >>> // verify if order was inserted correct > > >>> > > >>> final String query = "SELECT o FROM Order AS o WHERE o.status = > > >> ?1"; > > >>> > > >>> Query q = em.createQuery(query); > > >>> q.setParameter(1, "testStatus"); > > >>> > > >>> Order orderLoaded = null; > > >>> orderLoaded = (Order) q.getSingleResult(); > > >>> em.detach(orderLoaded); > > >>> > > >>> assertNotNull(orderLoaded); > > >>> assertTrue(orderLoaded.getId() > 0); > > >>> assertEquals(order.getStatus(), orderLoaded.getStatus()); > > >>> -----8<----- > > >>> > > >>> i am using OpenJPA 2.0.1 with MySQL JDBC 5.1.10 and MySQL Server > > 5.1.49. > > >>> with the following entity: > > >>> > > >>> @Entity > > >>> @Table(name="orders") > > >>> public class Order implements Serializable { > > >>> > > >>> /** serial for Serializable */ > > >>> private static final long serialVersionUID = -8061887078955032972L; > > >>> > > >>> @Id > > >>> @GeneratedValue(strategy = GenerationType.IDENTITY) > > >>> private int id; > > >>> > > >>> @Version > > >>> private int version; > > >>> > > >>> @Column(nullable = false, length = 50) > > >>> private String status; > > >>> > > >>> @Column > > >>> private Date created; > > >>> > > >>> ... remaining code skipped ... > > >>> > > >>> as i am not able to find a solution via the docs and using the > > internet, > > >> can > > >>> anybody help on why > > >>> the id column is not populated? > > >>> > > >>> Thanks > > >> > > >
