HHH-4665 add tests for getIdentifier()
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@18302 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
54706c4b20
commit
23c1a47667
|
@ -0,0 +1,32 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
public class Book {
|
||||||
|
private Long id;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.Persistence;
|
||||||
|
|
||||||
|
import org.hibernate.ejb.test.TestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
public class GetIdentifierTest extends TestCase {
|
||||||
|
|
||||||
|
public void testSimpleId() {
|
||||||
|
EntityManager em = factory.createEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
Book book = new Book();
|
||||||
|
em.persist( book );
|
||||||
|
em.flush();
|
||||||
|
assertEquals( book.getId(), em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier( book ) );
|
||||||
|
em.getTransaction().rollback();
|
||||||
|
em.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testEmbeddedId() {
|
||||||
|
EntityManager em = factory.createEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
Umbrella umbrella = new Umbrella();
|
||||||
|
umbrella.setId( new Umbrella.PK() );
|
||||||
|
umbrella.getId().setBrand( "Burberry" );
|
||||||
|
umbrella.getId().setModel( "Red Hat" );
|
||||||
|
em.persist( umbrella );
|
||||||
|
em.flush();
|
||||||
|
assertEquals( umbrella.getId(), em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier( umbrella ) );
|
||||||
|
em.getTransaction().rollback();
|
||||||
|
em.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testIdClass() {
|
||||||
|
EntityManager em = factory.createEntityManager();
|
||||||
|
em.getTransaction().begin();
|
||||||
|
Sickness sick = new Sickness();
|
||||||
|
|
||||||
|
sick.setClassification( "H1N1" );
|
||||||
|
sick.setType("Flu");
|
||||||
|
em.persist( sick );
|
||||||
|
em.flush();
|
||||||
|
Sickness.PK id = new Sickness.PK();
|
||||||
|
id.setClassification( sick.getClassification() );
|
||||||
|
id.setType( sick.getType() );
|
||||||
|
assertEquals( id, em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier( sick ) );
|
||||||
|
em.getTransaction().rollback();
|
||||||
|
em.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Class[] getAnnotatedClasses() {
|
||||||
|
return new Class[] {
|
||||||
|
Book.class,
|
||||||
|
Umbrella.class,
|
||||||
|
Sickness.class
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Temporal;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.IdClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@IdClass(Sickness.PK.class)
|
||||||
|
public class Sickness {
|
||||||
|
private Date beginTime;
|
||||||
|
private String type;
|
||||||
|
private String classification;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Id
|
||||||
|
public String getClassification() {
|
||||||
|
return classification;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClassification(String classification) {
|
||||||
|
this.classification = classification;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Temporal(javax.persistence.TemporalType.DATE)
|
||||||
|
public Date getBeginTime() {
|
||||||
|
return beginTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeginTime(Date beginTime) {
|
||||||
|
this.beginTime = beginTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class PK implements Serializable {
|
||||||
|
private String type;
|
||||||
|
private String classification;
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClassification() {
|
||||||
|
return classification;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClassification(String classification) {
|
||||||
|
this.classification = classification;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if ( this == o ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if ( o == null || getClass() != o.getClass() ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
PK pk = ( PK ) o;
|
||||||
|
|
||||||
|
if ( classification != null ? !classification.equals( pk.classification ) : pk.classification != null ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ( type != null ? !type.equals( pk.type ) : pk.type != null ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = type != null ? type.hashCode() : 0;
|
||||||
|
result = 31 * result + ( classification != null ? classification.hashCode() : 0 );
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
package org.hibernate.ejb.test.util;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.EmbeddedId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Emmanuel Bernard
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
public class Umbrella {
|
||||||
|
private PK id;
|
||||||
|
|
||||||
|
private int size;
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
public PK getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(PK id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSize(int size) {
|
||||||
|
this.size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class PK implements Serializable {
|
||||||
|
private String model;
|
||||||
|
private String brand;
|
||||||
|
|
||||||
|
public String getModel() {
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModel(String model) {
|
||||||
|
this.model = model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBrand() {
|
||||||
|
return brand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBrand(String brand) {
|
||||||
|
this.brand = brand;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if ( this == o ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if ( o == null || getClass() != o.getClass() ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
PK pk = ( PK ) o;
|
||||||
|
|
||||||
|
if ( brand != null ? !brand.equals( pk.brand ) : pk.brand != null ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ( model != null ? !model.equals( pk.model ) : pk.model != null ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
int result = model != null ? model.hashCode() : 0;
|
||||||
|
result = 31 * result + ( brand != null ? brand.hashCode() : 0 );
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue