类org.springframework.orm.jpa.domain.Person源码实例Demo

下面列出了怎么用org.springframework.orm.jpa.domain.Person的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void testLazyLoading() {
	try {
		Person tony = new Person();
		tony.setFirstName("Tony");
		tony.setLastName("Blair");
		tony.setDriversLicense(new DriversLicense("8439DK"));
		sharedEntityManager.persist(tony);
		setComplete();
		endTransaction();

		startNewTransaction();
		sharedEntityManager.clear();
		Person newTony = entityManagerFactory.createEntityManager().getReference(Person.class, tony.getId());
		assertNotSame(newTony, tony);
		endTransaction();

		assertNotNull(newTony.getDriversLicense());

		newTony.getDriversLicense().getSerialNumber();
	}
	finally {
		deleteFromTables("person", "drivers_license");
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testQueryNoPersonsNotTransactional() {
	endTransaction();

	EntityManager em = entityManagerFactory.createEntityManager();
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertEquals(0, people.size());
	try {
		assertNull(q.getSingleResult());
		fail("Should have thrown NoResultException");
	}
	catch (NoResultException ex) {
		// expected
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testEntityManagerProxyIsProxy() {
	EntityManager em = createContainerManagedEntityManager();
	assertTrue(Proxy.isProxyClass(em.getClass()));
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertTrue(people.isEmpty());

	assertTrue("Should be open to start with", em.isOpen());
	try {
		em.close();
		fail("Close should not work on container managed EM");
	}
	catch (IllegalStateException ex) {
		// OK
	}
	assertTrue(em.isOpen());
}
 
@Test
public void testReuseInNewTransaction() {
	EntityManager em = createContainerManagedEntityManager();
	doInstantiateAndSave(em);
	endTransaction();

	//assertFalse(em.getTransaction().isActive());

	startNewTransaction();
	// Call any method: should cause automatic tx invocation
	assertFalse(em.contains(new Person()));
	//assertTrue(em.getTransaction().isActive());

	doInstantiateAndSave(em);
	setComplete();
	endTransaction();	// Should rollback
	assertEquals("Tx must have committed back", 1, countRowsInTable(em, "person"));

	// Now clean up the database
	deleteFromTables("person");
}
 
@Test
public void testLazyLoading() {
	try {
		Person tony = new Person();
		tony.setFirstName("Tony");
		tony.setLastName("Blair");
		tony.setDriversLicense(new DriversLicense("8439DK"));
		sharedEntityManager.persist(tony);
		setComplete();
		endTransaction();

		startNewTransaction();
		sharedEntityManager.clear();
		Person newTony = entityManagerFactory.createEntityManager().getReference(Person.class, tony.getId());
		assertNotSame(newTony, tony);
		endTransaction();

		assertNotNull(newTony.getDriversLicense());

		newTony.getDriversLicense().getSerialNumber();
	}
	finally {
		deleteFromTables("person", "drivers_license");
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testQueryNoPersonsNotTransactional() {
	endTransaction();

	EntityManager em = entityManagerFactory.createEntityManager();
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertEquals(0, people.size());
	try {
		assertNull(q.getSingleResult());
		fail("Should have thrown NoResultException");
	}
	catch (NoResultException ex) {
		// expected
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testEntityManagerProxyIsProxy() {
	EntityManager em = createContainerManagedEntityManager();
	assertTrue(Proxy.isProxyClass(em.getClass()));
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertTrue(people.isEmpty());

	assertTrue("Should be open to start with", em.isOpen());
	try {
		em.close();
		fail("Close should not work on container managed EM");
	}
	catch (IllegalStateException ex) {
		// OK
	}
	assertTrue(em.isOpen());
}
 
@Test
public void testReuseInNewTransaction() {
	EntityManager em = createContainerManagedEntityManager();
	doInstantiateAndSave(em);
	endTransaction();

	//assertFalse(em.getTransaction().isActive());

	startNewTransaction();
	// Call any method: should cause automatic tx invocation
	assertFalse(em.contains(new Person()));
	//assertTrue(em.getTransaction().isActive());

	doInstantiateAndSave(em);
	setComplete();
	endTransaction();	// Should rollback
	assertEquals("Tx must have committed back", 1, countRowsInTable(em, "person"));

	// Now clean up the database
	deleteFromTables("person");
}
 
public void testLazyLoading() {
	try {
		Person tony = new Person();
		tony.setFirstName("Tony");
		tony.setLastName("Blair");
		tony.setDriversLicense(new DriversLicense("8439DK"));
		sharedEntityManager.persist(tony);
		setComplete();
		endTransaction();

		startNewTransaction();
		sharedEntityManager.clear();
		Person newTony = entityManagerFactory.createEntityManager().getReference(Person.class, tony.getId());
		assertNotSame(newTony, tony);
		endTransaction();

		assertNotNull(newTony.getDriversLicense());

		newTony.getDriversLicense().getSerialNumber();
	}
	finally {
		deleteFromTables("person", "drivers_license");
	}
}
 
@SuppressWarnings("unchecked")
public void testEntityManagerProxyIsProxy() {
	EntityManager em = createContainerManagedEntityManager();
	assertTrue(Proxy.isProxyClass(em.getClass()));
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertTrue(people.isEmpty());

	assertTrue("Should be open to start with", em.isOpen());
	try {
		em.close();
		fail("Close should not work on container managed EM");
	}
	catch (IllegalStateException ex) {
		// Ok
	}
	assertTrue(em.isOpen());
}
 
public void testReuseInNewTransaction() {
	EntityManager em = createContainerManagedEntityManager();
	doInstantiateAndSave(em);
	endTransaction();

	//assertFalse(em.getTransaction().isActive());

	startNewTransaction();
	// Call any method: should cause automatic tx invocation
	assertFalse(em.contains(new Person()));
	//assertTrue(em.getTransaction().isActive());

	doInstantiateAndSave(em);
	setComplete();
	endTransaction();	// Should rollback
	assertEquals("Tx must have committed back", 1, countRowsInTable(em, "person"));

	// Now clean up the database
	deleteFromTables("person");
}
 
@Test
@SuppressWarnings("unchecked")
public void testEntityManagerProxyIsProxy() {
	EntityManager em = entityManagerFactory.createEntityManager();
	assertTrue(Proxy.isProxyClass(em.getClass()));
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertNotNull(people);

	assertTrue("Should be open to start with", em.isOpen());
	em.close();
	assertFalse("Close should work on application managed EM", em.isOpen());
}
 
protected void doInstantiateAndSave(EntityManager em) {
	testStateClean();
	Person p = new Person();

	p.setFirstName("Tony");
	p.setLastName("Blair");
	em.persist(p);

	em.flush();
	assertEquals("1 row must have been inserted", 1, countRowsInTable(em, "person"));
}
 
@Test
public void testReuseInNewTransaction() {
	EntityManager em = entityManagerFactory.createEntityManager();
	em.joinTransaction();

	doInstantiateAndSave(em);
	endTransaction();

	assertFalse(em.getTransaction().isActive());

	startNewTransaction();
	// Call any method: should cause automatic tx invocation
	assertFalse(em.contains(new Person()));

	assertFalse(em.getTransaction().isActive());
	em.joinTransaction();

	assertTrue(em.getTransaction().isActive());

	doInstantiateAndSave(em);
	setComplete();
	endTransaction();	// Should rollback
	assertEquals("Tx must have committed back", 1, countRowsInTable(em, "person"));

	// Now clean up the database
	startNewTransaction();
	em.joinTransaction();
	deleteAllPeopleUsingEntityManager(em);
	assertEquals("People have been killed", 0, countRowsInTable(em, "person"));
	setComplete();
}
 
@Test
public void testGetReferenceWhenNoRow() {
	try {
		Person notThere = sharedEntityManager.getReference(Person.class, 666);

		// We may get here (as with Hibernate). Either behaviour is valid:
		// throw exception on first access or on getReference itself.
		notThere.getFirstName();
		fail("Should have thrown an EntityNotFoundException or ObjectNotFoundException");
	}
	catch (Exception ex) {
		assertTrue(ex.getClass().getName().endsWith("NotFoundException"));
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testMultipleResults() {
	// Add with JDBC
	String firstName = "Tony";
	insertPerson(firstName);

	assertTrue(Proxy.isProxyClass(sharedEntityManager.getClass()));
	Query q = sharedEntityManager.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();

	assertEquals(1, people.size());
	assertEquals(firstName, people.get(0).getFirstName());
}
 
protected void testInstantiateAndSave(EntityManager em) {
	assertEquals("Should be no people from previous transactions", 0, countRowsInTable("person"));
	Person p = new Person();
	p.setFirstName("Tony");
	p.setLastName("Blair");
	em.persist(p);

	em.flush();
	assertEquals("1 row must have been inserted", 1, countRowsInTable("person"));
}
 
@Test
@SuppressWarnings("unchecked")
public void testQueryNoPersons() {
	EntityManager em = entityManagerFactory.createEntityManager();
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertEquals(0, people.size());
	try {
		assertNull(q.getSingleResult());
		fail("Should have thrown NoResultException");
	}
	catch (NoResultException ex) {
		// expected
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testQueryNoPersonsShared() {
	Query q = this.sharedEntityManager.createQuery("select p from Person as p");
	q.setFlushMode(FlushModeType.AUTO);
	List<Person> people = q.getResultList();
	assertEquals(0, people.size());
	try {
		assertNull(q.getSingleResult());
		fail("Should have thrown NoResultException");
	}
	catch (NoResultException ex) {
		// expected
	}
}
 
@Test
public void defaultDomainWithIndex() {
	this.manager.setPackagesToScan("org.springframework.orm.jpa.domain");
	this.manager.setResourceLoader(new DefaultResourceLoader(
			CandidateComponentsTestClassLoader.index(getClass().getClassLoader(),
					new ClassPathResource("spring.components", Person.class))));
	testDefaultDomain();
}
 
protected void doInstantiateAndSave(EntityManager em) {
	assertEquals("Should be no people from previous transactions", 0, countRowsInTable(em, "person"));
	Person p = new Person();

	p.setFirstName("Tony");
	p.setLastName("Blair");
	em.persist(p);

	em.flush();
	assertEquals("1 row must have been inserted", 1, countRowsInTable(em, "person"));
}
 
@Test
@SuppressWarnings("unchecked")
public void testEntityListener() {
	String firstName = "Tony";
	insertPerson(firstName);

	List<Person> people = sharedEntityManager.createQuery("select p from Person as p").getResultList();
	assertEquals(1, people.size());
	assertEquals(firstName, people.get(0).getFirstName());
	assertSame(applicationContext, people.get(0).postLoaded);
}
 
@Test
@SuppressWarnings({ "unchecked", "rawtypes" })
public void testCurrentSession() {
	String firstName = "Tony";
	insertPerson(firstName);

	Query q = sessionFactory.getCurrentSession().createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertEquals(1, people.size());
	assertEquals(firstName, people.get(0).getFirstName());
	assertSame(applicationContext, people.get(0).postLoaded);
}
 
@Test
@SuppressWarnings("unchecked")
public void testEntityManagerProxyIsProxy() {
	EntityManager em = entityManagerFactory.createEntityManager();
	assertTrue(Proxy.isProxyClass(em.getClass()));
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertNotNull(people);

	assertTrue("Should be open to start with", em.isOpen());
	em.close();
	assertFalse("Close should work on application managed EM", em.isOpen());
}
 
protected void doInstantiateAndSave(EntityManager em) {
	testStateClean();
	Person p = new Person();

	p.setFirstName("Tony");
	p.setLastName("Blair");
	em.persist(p);

	em.flush();
	assertEquals("1 row must have been inserted", 1, countRowsInTable(em, "person"));
}
 
@Test
public void testReuseInNewTransaction() {
	EntityManager em = entityManagerFactory.createEntityManager();
	em.joinTransaction();

	doInstantiateAndSave(em);
	endTransaction();

	assertFalse(em.getTransaction().isActive());

	startNewTransaction();
	// Call any method: should cause automatic tx invocation
	assertFalse(em.contains(new Person()));

	assertFalse(em.getTransaction().isActive());
	em.joinTransaction();

	assertTrue(em.getTransaction().isActive());

	doInstantiateAndSave(em);
	setComplete();
	endTransaction();	// Should rollback
	assertEquals("Tx must have committed back", 1, countRowsInTable(em, "person"));

	// Now clean up the database
	startNewTransaction();
	em.joinTransaction();
	deleteAllPeopleUsingEntityManager(em);
	assertEquals("People have been killed", 0, countRowsInTable(em, "person"));
	setComplete();
}
 
@Test
public void testGetReferenceWhenNoRow() {
	try {
		Person notThere = sharedEntityManager.getReference(Person.class, 666);

		// We may get here (as with Hibernate). Either behaviour is valid:
		// throw exception on first access or on getReference itself.
		notThere.getFirstName();
		fail("Should have thrown an EntityNotFoundException or ObjectNotFoundException");
	}
	catch (Exception ex) {
		assertTrue(ex.getClass().getName().endsWith("NotFoundException"));
	}
}
 
@Test
@SuppressWarnings("unchecked")
public void testMultipleResults() {
	// Add with JDBC
	String firstName = "Tony";
	insertPerson(firstName);

	assertTrue(Proxy.isProxyClass(sharedEntityManager.getClass()));
	Query q = sharedEntityManager.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();

	assertEquals(1, people.size());
	assertEquals(firstName, people.get(0).getFirstName());
}
 
protected void testInstantiateAndSave(EntityManager em) {
	assertEquals("Should be no people from previous transactions", 0, countRowsInTable("person"));
	Person p = new Person();
	p.setFirstName("Tony");
	p.setLastName("Blair");
	em.persist(p);

	em.flush();
	assertEquals("1 row must have been inserted", 1, countRowsInTable("person"));
}
 
@Test
@SuppressWarnings("unchecked")
public void testQueryNoPersons() {
	EntityManager em = entityManagerFactory.createEntityManager();
	Query q = em.createQuery("select p from Person as p");
	List<Person> people = q.getResultList();
	assertEquals(0, people.size());
	try {
		assertNull(q.getSingleResult());
		fail("Should have thrown NoResultException");
	}
	catch (NoResultException ex) {
		// expected
	}
}
 
 类方法
 同包方法