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
> 


Reply via email to