HHH-5258 add tests on isLoaded and superclasses and private properties
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@19600 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
85e15cfbdf
commit
66ef8d95c5
|
@ -0,0 +1,24 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
@Entity @Table(name="tbl_Author")
|
||||||
|
public class Author {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,10 +8,18 @@ import javax.persistence.GeneratedValue;
|
||||||
* @author Emmanuel Bernard
|
* @author Emmanuel Bernard
|
||||||
*/
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
public class Book {
|
public class Book extends CopyrightableContent {
|
||||||
private Long id;
|
private Long id;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
public Book() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Book(Author a) {
|
||||||
|
super(a);
|
||||||
|
}
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.FetchType;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import javax.persistence.MappedSuperclass;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
@MappedSuperclass
|
||||||
|
public abstract class CopyrightableContent {
|
||||||
|
private Author author;
|
||||||
|
|
||||||
|
public CopyrightableContent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public CopyrightableContent(Author author) {
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private Author getAuthor() {
|
||||||
|
return author;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setAuthor(Author author) {
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
}
|
|
@ -56,7 +56,8 @@ public class GetIdentifierTest extends TestCase {
|
||||||
return new Class[] {
|
return new Class[] {
|
||||||
Book.class,
|
Book.class,
|
||||||
Umbrella.class,
|
Umbrella.class,
|
||||||
Sickness.class
|
Sickness.class,
|
||||||
|
Author.class
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import javax.persistence.EntityManager;
|
||||||
|
|
||||||
|
import org.hibernate.ejb.test.TestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
public class IsLoadedTest extends TestCase {
|
||||||
|
|
||||||
|
public void testIsLoadedOnPrivateSuperclassProperty() {
|
||||||
|
EntityManager em = factory.createEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
Author a = new Author();
|
||||||
|
Book book = new Book(a);
|
||||||
|
em.persist( a );
|
||||||
|
em.persist( book );
|
||||||
|
em.flush();
|
||||||
|
em.clear();
|
||||||
|
book = em.find( Book.class, book.getId() );
|
||||||
|
assertTrue( em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded( book ) );
|
||||||
|
assertFalse( em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded( book, "author" ) );
|
||||||
|
em.getTransaction().rollback();
|
||||||
|
em.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<?>[] getAnnotatedClasses() {
|
||||||
|
return new Class<?>[] {
|
||||||
|
Author.class,
|
||||||
|
Book.class,
|
||||||
|
CopyrightableContent.class
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue