Hi Rick,
>How did you get the data into your DB?
I insert data at mysql prompt.
================================================
mysql> INSERT INTO t_user(name,age) VALUES ('John', 26);
Query OK, 1 row affected (0.03 sec)
================================================
Now,db's data like below,
================================================
mysql> select * from t_user;
+-----+--------+-----+
| uid | name | age |
+-----+--------+-----+
| 1 | Huang | 26 |
| 2 | Alex | 28 |
| 3 | tester | 22 |
| 4 | John | 26 |
+-----+--------+-----+
4 rows in set (0.00 sec)
================================================
>What happens if you call em.find(TUser.class, [known_id]) ?
I run the following case, and it completed successful.
================================================
public void testFind(){
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
TUser user = em.find(TUser.class, 2);
assertEquals("Alex", user.getName());
assertEquals(28, user.getAge());
}
================================================
After I added "assertEquals(2,user.getUid());", AssertionFailedError
occured.
================================================
junit.framework.AssertionFailedError: expected:<2> but was:<0>
================================================
>Could you try creating some data and persisting it via JPA?
OK.I added a method to test case.
==========================================
public void testInsert(){
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
TUser user = new TUser();
user.setName("Jeason");
user.setAge(27);
em.persist(user);
em.getTransaction().commit();
em.close();
}
==========================================
I run the test case and it completed successful. At mysql prompt I confirmed
the data has been created.
==========================================
mysql> select * from t_user;
+-----+--------+-----+
| uid | name | age |
+-----+--------+-----+
| 1 | Huang | 26 |
| 2 | Alex | 28 |
| 3 | tester | 22 |
| 4 | John | 26 |
| 5 | Jeason | 27 |
+-----+--------+-----+
5 rows in set (0.00 sec)
==========================================
Look forward to your advance.
Alex,Huang
----- Original Message -----
From: "Rick Curtis" <[email protected]>
To: <[email protected]>
Sent: Thursday, November 04, 2010 5:29 AM
Subject: Re: Can't obtain Primary Key value by JPQL
> That looks about identical to the test case that I came up with.
>
>> Any advice?
> I'm running low on ideas here... How did you get the data into your DB?
> What happens if you call em.find(TUser.class, [known_id]) ? Could you try
> creating some data and persisting it via JPA?
>
> Thanks,
> Rick
>