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
|