mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-25 21:04:51 +00:00
HHH-3164 add test
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@18026 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
deabfeb485
commit
1ca018960e
@ -3,11 +3,17 @@
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.hibernate.Query;
|
import org.hibernate.Query;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
|
import org.hibernate.Criteria;
|
||||||
|
import org.hibernate.dialect.HSQLDialect;
|
||||||
|
import org.hibernate.criterion.Disjunction;
|
||||||
|
import org.hibernate.criterion.Restrictions;
|
||||||
import org.hibernate.test.annotations.TestCase;
|
import org.hibernate.test.annotations.TestCase;
|
||||||
|
import org.hibernate.test.annotations.SkipForDialect;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test some composite id functionalities
|
* test some composite id functionalities
|
||||||
@ -248,6 +254,62 @@ public void testSecondaryTableWithIdClass() throws Exception {
|
|||||||
s.close();
|
s.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SkipForDialect(value=org.hibernate.dialect.HSQLDialect.class,
|
||||||
|
comment = "HSQLDB does not support ((..., ...),(..., ...))")
|
||||||
|
public void testQueryInAndComposite() {
|
||||||
|
|
||||||
|
Session s = openSession( );
|
||||||
|
Transaction transaction = s.beginTransaction();
|
||||||
|
|
||||||
|
SomeEntity someEntity = new SomeEntity();
|
||||||
|
someEntity.setId( new SomeEntityId( ) );
|
||||||
|
someEntity.getId().setId( 1 );
|
||||||
|
someEntity.getId().setVersion( 11 );
|
||||||
|
someEntity.setProp( "aa" );
|
||||||
|
s.persist( someEntity );
|
||||||
|
someEntity = new SomeEntity();
|
||||||
|
someEntity.setId( new SomeEntityId( ) );
|
||||||
|
someEntity.getId().setId( 1 );
|
||||||
|
someEntity.getId().setVersion( 12 );
|
||||||
|
someEntity.setProp( "bb" );
|
||||||
|
s.persist( someEntity );
|
||||||
|
someEntity = new SomeEntity();
|
||||||
|
someEntity.setId( new SomeEntityId( ) );
|
||||||
|
someEntity.getId().setId( 10 );
|
||||||
|
someEntity.getId().setVersion( 21 );
|
||||||
|
someEntity.setProp( "cc1" );
|
||||||
|
s.persist( someEntity );
|
||||||
|
someEntity = new SomeEntity();
|
||||||
|
someEntity.setId( new SomeEntityId( ) );
|
||||||
|
someEntity.getId().setId( 10 );
|
||||||
|
someEntity.getId().setVersion( 22 );
|
||||||
|
someEntity.setProp( "cc2" );
|
||||||
|
s.persist( someEntity );
|
||||||
|
someEntity = new SomeEntity();
|
||||||
|
someEntity.setId( new SomeEntityId( ) );
|
||||||
|
someEntity.getId().setId( 10 );
|
||||||
|
someEntity.getId().setVersion( 23 );
|
||||||
|
someEntity.setProp( "cc3" );
|
||||||
|
s.persist( someEntity );
|
||||||
|
|
||||||
|
s.flush();
|
||||||
|
|
||||||
|
List ids = new ArrayList<SomeEntityId>(2);
|
||||||
|
ids.add( new SomeEntityId(1,12) );
|
||||||
|
ids.add( new SomeEntityId(10,23) );
|
||||||
|
|
||||||
|
Criteria criteria = s.createCriteria( SomeEntity.class );
|
||||||
|
Disjunction disjunction = Restrictions.disjunction();
|
||||||
|
|
||||||
|
disjunction.add( Restrictions.in( "id", ids ) );
|
||||||
|
criteria.add( disjunction );
|
||||||
|
|
||||||
|
List list = criteria.list();
|
||||||
|
assertEquals( 2, list.size() );
|
||||||
|
transaction.rollback();
|
||||||
|
s.close();
|
||||||
|
}
|
||||||
|
|
||||||
protected Class[] getMappings() {
|
protected Class[] getMappings() {
|
||||||
return new Class[] {
|
return new Class[] {
|
||||||
Parent.class,
|
Parent.class,
|
||||||
@ -264,7 +326,8 @@ protected Class[] getMappings() {
|
|||||||
LittleGenius.class,
|
LittleGenius.class,
|
||||||
A.class,
|
A.class,
|
||||||
B.class,
|
B.class,
|
||||||
C.class
|
C.class,
|
||||||
|
SomeEntity.class
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
package org.hibernate.test.annotations.cid;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Basic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author bartek
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
public class SomeEntity
|
||||||
|
implements Serializable {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private SomeEntityId id;
|
||||||
|
|
||||||
|
@Basic
|
||||||
|
private String prop;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public SomeEntityId getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id the id to set
|
||||||
|
*/
|
||||||
|
public void setId(SomeEntityId id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the prop
|
||||||
|
*/
|
||||||
|
public String getProp() {
|
||||||
|
return prop;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param prop the prop to set
|
||||||
|
*/
|
||||||
|
public void setProp(String prop) {
|
||||||
|
this.prop = prop;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,78 @@
|
|||||||
|
package org.hibernate.test.annotations.cid;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import javax.persistence.Embeddable;
|
||||||
|
|
||||||
|
import org.hibernate.annotations.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author bartek
|
||||||
|
*/
|
||||||
|
@Embeddable
|
||||||
|
public class SomeEntityId implements Serializable {
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private Integer version;
|
||||||
|
|
||||||
|
@org.hibernate.annotations.Parent
|
||||||
|
private SomeEntity parent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public SomeEntityId() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param i
|
||||||
|
* @param j
|
||||||
|
*/
|
||||||
|
public SomeEntityId(int id, int version) {
|
||||||
|
super();
|
||||||
|
this.id = id;
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the id
|
||||||
|
*/
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param id the id to set
|
||||||
|
*/
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the version
|
||||||
|
*/
|
||||||
|
public int getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param version the version to set
|
||||||
|
*/
|
||||||
|
public void setVersion(int version) {
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the parent
|
||||||
|
*/
|
||||||
|
public SomeEntity getParent() {
|
||||||
|
return parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param parent the parent to set
|
||||||
|
*/
|
||||||
|
public void setParent(SomeEntity parent) {
|
||||||
|
this.parent = parent;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user