public class JPAUnitTestCase {
private EntityManagerFactory entityManagerFactory;
@Before
public void init() {
entityManagerFactory = Persistence.createEntityManagerFactory( "templatePU" );
}
@After
public void destroy() {
entityManagerFactory.close();
}
@Test(expected = LazyInitializationException.class)
public void hhh123Test() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
User user = new User();
entityManager.persist( user );
Detail detail = new Detail();
detail.setUser( user );
entityManager.persist( detail );
entityManager.getTransaction().commit();
entityManager.close();
entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
user = entityManager.find( User.class, user.getId() );
entityManager.getTransaction().commit();
entityManager.close();
Assert.assertNull( user.getDetail() );
}
}
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@OneToOne(mappedBy = "user", fetch = FetchType.LAZY)
private Detail detail;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Detail getDetail() {
return detail;
}
public void setDetail(Detail detail) {
this.detail = detail;
}
}
@Entity
public class Detail {
@Id
@GeneratedValue
private Long id;
@OneToOne(fetch = FetchType.LAZY)
private User user;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}