I have just started with GAE+JPA. However I find it difficult to grasp the
primary key things.
I have created a very simple entity and a test to verify that the primary
key is generated automatically.

Entity

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.google.appengine.api.datastore.Key;
import com.szczytowski.genericdao.api.IEntity;

@Entity
public class Profile implements IEntity<Key> {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Key _id;

    @Basic
    private int _age;

    @Basic
    @Temporal(TemporalType.DATE)
    private Date _dob;

    public Profile() {
    }

    public Key getId() {
        return _id;
    }

    public void setId(Key id) {
        _id = id;
    }

    public int getAge() {
        return _age;
    }

    public void setAge(int age) {
        _age = age;
    }

    public Date getDob() {
        return _dob;
    }

    public void setDob(Date dob) {
        _dob = dob;
    }
}


Test Class

import java.util.Date;

import junit.framework.TestCase;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.ramanandi.matri.infrastructure.jpa.EMF;

import
com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import
com.google.appengine.tools.development.testing.LocalServiceTestHelper;

public class ProfileDaoTest extends TestCase {

    private final LocalServiceTestHelper helper = new
LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
    private ProfileDao dao = new ProfileDao();


    @Before
    public void setUp() {
        helper.setUp();
    }

    @After
    public void tearDown() {
        helper.tearDown();
    }
    private void doTest() {
        dao.setEntityManager(EMF.get().createEntityManager());
        Profile p = new Profile();
        p.setAge(20);
        p.setDob(new Date());
        dao.save(p);
        assertNotNull(p.getId());


    }

    @Test
    public void testInsert1() {
        doTest();
    }

}

But    assertNotNull(p.getId()); fails. Why the primary key is not generated
automatically? What's wrong.

Thanks
SN

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to