Hibernate SVN: r10300 - trunk/Hibernate3/src/org/hibernate/dialect
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-21 10:48:38 -0400 (Mon, 21 Aug 2006)
New Revision: 10300
Modified:
trunk/Hibernate3/src/org/hibernate/dialect/Oracle9Dialect.java
Log:
HHH-2017 : locate function on Oracle
Modified: trunk/Hibernate3/src/org/hibernate/dialect/Oracle9Dialect.java
===================================================================
--- trunk/Hibernate3/src/org/hibernate/dialect/Oracle9Dialect.java 2006-08-19 11:31:11 UTC (rev 10299)
+++ trunk/Hibernate3/src/org/hibernate/dialect/Oracle9Dialect.java 2006-08-21 14:48:38 UTC (rev 10300)
@@ -115,7 +115,7 @@
registerFunction( "translate", new StandardSQLFunction("translate", Hibernate.STRING) );
registerFunction( "substring", new StandardSQLFunction( "substr", Hibernate.STRING ) );
- registerFunction( "locate", new StandardSQLFunction( "instr", Hibernate.INTEGER ) );
+ registerFunction( "locate", new SQLFunctionTemplate( Hibernate.INTEGER, "instr(?2,?1)" ) );
registerFunction( "bit_length", new SQLFunctionTemplate( Hibernate.INTEGER, "vsize(?1)*8" ) );
registerFunction( "coalesce", new NvlFunction() );
17 years, 9 months
Hibernate SVN: r10299 - trunk/Hibernate3/doc/reference/ko/modules
by hibernate-commits@lists.jboss.org
Author: jdkim528
Date: 2006-08-19 07:31:11 -0400 (Sat, 19 Aug 2006)
New Revision: 10299
Modified:
trunk/Hibernate3/doc/reference/ko/modules/architecture.xml
Log:
3.2 cr3 korean
Modified: trunk/Hibernate3/doc/reference/ko/modules/architecture.xml
===================================================================
--- trunk/Hibernate3/doc/reference/ko/modules/architecture.xml 2006-08-18 23:31:23 UTC (rev 10298)
+++ trunk/Hibernate3/doc/reference/ko/modules/architecture.xml 2006-08-19 11:31:11 UTC (rev 10299)
@@ -78,19 +78,19 @@
</listitem>
</varlistentry>
<varlistentry>
- <term>Persistent objects and collections</term>
+ <term>영속 객체들과 콜렉션들</term>
<listitem>
<para>
persistent 상태와 비지니스 기능을 포함하는 수명이 짧고, 단일 쓰레드인 객체들. 이것들은 통상의 JavaBeans/POJO들일
수 있고, 오직 그것들에 대한 오직 특별한 것은 그것들이 현재 (정확하게 한 개의) <literal>Session</literal>과 연관되어
있다는 점이다. <literal>Session</literal>이 닫히자마자, 그것들은 분리될(detached 상태가 될) 것이고 어플리케이션
- 레이어에서 사용하는 것이 자유로와진다(예를 들면. 프리젠테이션으로의 데이터 전송 객체들로서 직접적으로 그리고 프리젠테이션으로부터
- 데이터 전송 객체들로서 직접으로).
+ 레이어에서 사용하는 것이 자유로와진다(예를 들면. 직접적으로 프리젠테이션 계층으로
+ 데이터 전송 객체들로서 그리고 직접적으로 프리젠테이션 계층으로부터 데이터 전송 객체들로서).
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>Transient and detached objects and collections</term>
+ <term>전이(Transient, 필자 주-과도) 객체들과 콜렉션들</term>
<listitem>
<para>
<literal>Session</literal>과 현재 연관되어 있지 않은 영속 클래스들의 인스턴스들. 그것들은 어플리케이션에 의해 초기화
17 years, 9 months
Hibernate SVN: r10298 - in trunk/HibernateExt/metadata/src: java/org/hibernate/annotations java/org/hibernate/cfg/annotations test/org/hibernate/test/annotations/inheritance/singletable
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2006-08-18 19:31:23 -0400 (Fri, 18 Aug 2006)
New Revision: 10298
Added:
trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForceDiscriminator.java
Modified:
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/Building.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/SingleTableTest.java
Log:
ANN-36 force discriminator feature Serg Prasolov
Added: trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForceDiscriminator.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForceDiscriminator.java 2006-08-18 22:46:02 UTC (rev 10297)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForceDiscriminator.java 2006-08-18 23:31:23 UTC (rev 10298)
@@ -0,0 +1,16 @@
+//$Id: $
+package org.hibernate.annotations;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * ForceDiscriminator flag
+ * To be placed at the root entity near @DiscriminatorColumn or @DiscriminatorFormula
+ *
+ * @author Serg Prasolov
+ */
+(a)Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME)
+public @interface ForceDiscriminator {}
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java 2006-08-18 22:46:02 UTC (rev 10297)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java 2006-08-18 23:31:23 UTC (rev 10298)
@@ -28,6 +28,7 @@
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Tables;
import org.hibernate.annotations.Where;
+import org.hibernate.annotations.ForceDiscriminator;
import org.hibernate.cache.CacheFactory;
import org.hibernate.cfg.AnnotationBinder;
import org.hibernate.cfg.Ejb3JoinColumn;
@@ -166,6 +167,7 @@
rootClass.setCacheRegionName( cacheRegion );
rootClass.setLazyPropertiesCacheable( cacheLazyProperty );
}
+ rootClass.setForceDiscriminator( annotatedClass.isAnnotationPresent( ForceDiscriminator.class ) );
}
else {
if (explicitHibernateEntityAnnotation) {
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/Building.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/Building.java 2006-08-18 22:46:02 UTC (rev 10297)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/Building.java 2006-08-18 23:31:23 UTC (rev 10298)
@@ -8,11 +8,14 @@
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
+import org.hibernate.annotations.ForceDiscriminator;
+
/**
* @author Emmanuel Bernard
*/
@Entity
@DiscriminatorColumn(name = "discriminator_disc")
+@ForceDiscriminator
@DiscriminatorValue("B")
public class Building {
@Id
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/SingleTableTest.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/SingleTableTest.java 2006-08-18 22:46:02 UTC (rev 10297)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/inheritance/singletable/SingleTableTest.java 2006-08-18 23:31:23 UTC (rev 10298)
@@ -2,9 +2,11 @@
package org.hibernate.test.annotations.inheritance.singletable;
import java.util.List;
+import java.sql.Statement;
import org.hibernate.Session;
import org.hibernate.Transaction;
+import org.hibernate.WrongClassException;
import org.hibernate.test.annotations.TestCase;
import org.hibernate.test.annotations.inheritance.Apple;
import org.hibernate.test.annotations.inheritance.Fruit;
@@ -27,6 +29,26 @@
s.close();
}
+ public void testForceDiscriminator() throws Exception {
+ Session s = openSession();
+ Transaction tx = s.beginTransaction();
+ Building b = new Building();
+ s.persist( b );
+ s.flush();
+ Statement statement = s.connection().createStatement();
+ statement.executeUpdate( "update Building set discriminator_disc = 'N'");
+ statement.close();
+ s.clear();
+ try {
+ assertEquals( 0, s.createQuery( "select b from Building b" ).list().size() );
+ }
+ catch (WrongClassException e) {
+ fail("the wrong discriminator is not filtered");
+ }
+ tx.rollback();
+ s.close();
+ }
+
public void testDefault() throws Exception {
Session s;
Transaction tx;
17 years, 9 months
Hibernate SVN: r10297 - in trunk/HibernateExt/metadata/src: java/org/hibernate/annotations java/org/hibernate/cfg java/org/hibernate/cfg/annotations test/org/hibernate/test/annotations/manytomany test/org/hibernate/test/annotations/manytoone test/org/hibernate/test/annotations/onetomany
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2006-08-18 18:46:02 -0400 (Fri, 18 Aug 2006)
New Revision: 10297
Added:
trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForeignKey.java
Modified:
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Woman.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/Car.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/ForestType.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Trainer.java
Log:
ANN-261 add ForeignKey naming (inspired by David Hay's patch)
Added: trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForeignKey.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForeignKey.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/ForeignKey.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -0,0 +1,28 @@
+//$Id: $
+package org.hibernate.annotations;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+
+@Target({FIELD, METHOD})
+@Retention(RUNTIME)
+
+/**
+ * Define the foreign key name
+ */
+public @interface ForeignKey {
+ /**
+ * Name of the foreign key. Used in OneToMany, ManyToOne, and OneToOne
+ * relationships. Used for the owning side in ManyToMany relationships
+ */
+ String name();
+
+ /**
+ * Used for the non-owning side of a ManyToMany relationship. Ignored
+ * in other relationships
+ */
+ String inverseName() default "";
+}
\ No newline at end of file
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/AnnotationBinder.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -86,6 +86,7 @@
import org.hibernate.annotations.TypeDefs;
import org.hibernate.annotations.Where;
import org.hibernate.annotations.CollectionId;
+import org.hibernate.annotations.ForeignKey;
import org.hibernate.cfg.annotations.CollectionBinder;
import org.hibernate.cfg.annotations.EntityBinder;
import org.hibernate.cfg.annotations.Nullability;
@@ -1749,7 +1750,10 @@
final String propertyName = inferredData.getPropertyName();
value.setTypeUsingReflection( propertyHolder.getClassName(), propertyName );
- //value.createForeignKey();
+ ForeignKey fk = inferredData.getProperty().getAnnotation( ForeignKey.class );
+ String fkName = fk != null ? fk.name() : "";
+ if ( ! BinderHelper.isDefault( fkName ) ) value.setForeignKeyName( fkName );
+
String path = propertyHolder.getPath() + "." + propertyName;
mappings.addSecondPass(
new FkSecondPass(
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -6,6 +6,7 @@
import org.hibernate.AnnotationException;
import org.hibernate.MappingException;
+import org.hibernate.annotations.ForeignKey;
import org.hibernate.cfg.annotations.PropertyBinder;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.DependantValue;
@@ -201,6 +202,9 @@
);
}
}
+ ForeignKey fk = inferredData.getProperty().getAnnotation( ForeignKey.class );
+ String fkName = fk != null ? fk.name() : "";
+ if ( ! BinderHelper.isDefault( fkName ) ) value.setForeignKeyName( fkName );
}
//dirty dupe of EntityBinder.bindSecondaryTable
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -34,6 +34,7 @@
import org.hibernate.annotations.SortType;
import org.hibernate.annotations.Where;
import org.hibernate.annotations.CollectionId;
+import org.hibernate.annotations.ForeignKey;
import org.hibernate.cfg.AnnotatedClassType;
import org.hibernate.cfg.AnnotationBinder;
import org.hibernate.cfg.BinderHelper;
@@ -589,7 +590,7 @@
"Mapping collection: " + collection.getRole() + " -> " + collection.getCollectionTable().getName()
);
- bindCollectionSecondPass( collection, null, fkJoinColumns, cascadeDeleteEnabled, mappings );
+ bindCollectionSecondPass( collection, null, fkJoinColumns, cascadeDeleteEnabled, property, mappings );
if ( !collection.isInverse()
&& !collection.getKey().isNullable() ) {
// for non-inverse one-to-many, with a not-null fk, add a backref!
@@ -807,7 +808,7 @@
private static SimpleValue buildCollectionKey(
Collection collValue, Ejb3JoinColumn[] joinColumns, boolean cascadeDeleteEnabled,
- ExtendedMappings mappings
+ XProperty property, ExtendedMappings mappings
) {
//binding key reference using column
KeyValue keyVal;
@@ -837,11 +838,14 @@
}
DependantValue key = new DependantValue( collValue.getCollectionTable(), keyVal );
key.setTypeName( null );
- Ejb3JoinColumn.checkPropertyConsistency( joinColumns, collValue.getOwnerEntityName() );
+ Ejb3Column.checkPropertyConsistency( joinColumns, collValue.getOwnerEntityName() );
key.setNullable( joinColumns.length == 0 || joinColumns[0].isNullable() );
key.setUpdateable( joinColumns.length == 0 || joinColumns[0].isUpdatable() );
key.setCascadeDeleteEnabled( cascadeDeleteEnabled );
collValue.setKey( key );
+ ForeignKey fk = property != null ? property.getAnnotation( ForeignKey.class ) : null;
+ String fkName = fk != null ? fk.name() : "";
+ if ( ! BinderHelper.isDefault( fkName ) ) key.setForeignKeyName( fkName );
return key;
}
@@ -961,7 +965,7 @@
collValue.setCollectionTable( associationTableBinder.bind() );
}
- bindCollectionSecondPass( collValue, collectionEntity, joinColumns, cascadeDeleteEnabled, mappings );
+ bindCollectionSecondPass( collValue, collectionEntity, joinColumns, cascadeDeleteEnabled, property, mappings );
ManyToOne element = null;
if ( isCollectionOfEntities ) {
@@ -980,6 +984,9 @@
buildOrderByClauseFromHql( hqlOrderBy, collectionEntity, collValue.getRole() )
);
}
+ ForeignKey fk = property != null ? property.getAnnotation( ForeignKey.class ) : null;
+ String fkName = fk != null ? fk.inverseName() : "";
+ if ( ! BinderHelper.isDefault( fkName ) ) element.setForeignKeyName( fkName );
}
else {
XClass elementClass;
@@ -1105,13 +1112,13 @@
private static void bindCollectionSecondPass(
Collection collValue, PersistentClass collectionEntity, Ejb3JoinColumn[] joinColumns,
- boolean cascadeDeleteEnabled,
+ boolean cascadeDeleteEnabled, XProperty property,
ExtendedMappings mappings
) {
BinderHelper.createSyntheticPropertyReference(
joinColumns, collValue.getOwner(), collectionEntity, collValue, false, mappings
);
- SimpleValue key = buildCollectionKey( collValue, joinColumns, cascadeDeleteEnabled, mappings );
+ SimpleValue key = buildCollectionKey( collValue, joinColumns, cascadeDeleteEnabled, property, mappings );
TableBinder.bindFk( collValue.getOwner(), collectionEntity, joinColumns, key, false, mappings );
}
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Woman.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Woman.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Woman.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -10,6 +10,8 @@
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
+import org.hibernate.annotations.ForeignKey;
+
/**
* Woman knowing several mens
*
@@ -44,6 +46,7 @@
@JoinColumn(name = "manFirstName", referencedColumnName = "firstName")
}
)
+ @ForeignKey(name = "WM_W_FK", inverseName = "WM_M_FK")
public Set<Man> getMens() {
return mens;
}
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/Car.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/Car.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/Car.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -7,6 +7,8 @@
import javax.persistence.Id;
import javax.persistence.ManyToOne;
+import org.hibernate.annotations.ForeignKey;
+
/**
* Many to one sample using default mapping values
*
@@ -29,6 +31,7 @@
}
@ManyToOne(fetch = FetchType.EAGER)
+ @ForeignKey(name="BODY_COLOR_FK")
public Color getBodyColor() {
return bodyColor;
}
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/ForestType.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/ForestType.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytoone/ForestType.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -10,6 +10,8 @@
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
+import org.hibernate.annotations.ForeignKey;
+
/**
* @author Emmanuel Bernard
*/
@@ -25,6 +27,9 @@
joinColumns = @JoinColumn(name="forest_type"),
inverseJoinColumns = @JoinColumn(name="forest")
)
+ @ForeignKey(name="A_TYP_FK",
+ inverseName = "A_FOR_FK" //inverse fail cause it involves a Join
+ )
public BiggestForest getBiggestRepresentative() {
return biggestRepresentative;
}
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/City.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -10,6 +10,8 @@
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
+import org.hibernate.annotations.ForeignKey;
+
/**
* @author Emmanuel Bernard
*/
@@ -50,6 +52,7 @@
@OneToMany()
@JoinColumn(name = "mainstreetcity_id")
+ @ForeignKey(name = "CITYSTR_FK")
@OrderBy
public List<Street> getMainStreets() {
return mainStreets;
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Trainer.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Trainer.java 2006-08-18 22:02:38 UTC (rev 10296)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/onetomany/Trainer.java 2006-08-18 22:46:02 UTC (rev 10297)
@@ -9,6 +9,8 @@
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
+import org.hibernate.annotations.ForeignKey;
+
/**
* Unidirectional one to many sample
*
@@ -54,6 +56,7 @@
joinColumns = {@JoinColumn(name = "trainer_id")},
inverseJoinColumns = @JoinColumn(name = "monkey_id")
)
+ @ForeignKey(name = "TM_TRA_FK", inverseName = "TM_MON_FK")
public Set<Monkey> getTrainedMonkeys() {
return trainedMonkeys;
}
17 years, 9 months
Hibernate SVN: r10296 - branches/Branch_3_2/Hibernate3/src/org/hibernate/hql/ast/tree
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-18 18:02:38 -0400 (Fri, 18 Aug 2006)
New Revision: 10296
Modified:
branches/Branch_3_2/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java
Log:
HHH-1944 : generated subqueries and jpaql compliance (derived select clause) check
Modified: branches/Branch_3_2/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java
===================================================================
--- branches/Branch_3_2/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java 2006-08-18 22:01:43 UTC (rev 10295)
+++ branches/Branch_3_2/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java 2006-08-18 22:02:38 UTC (rev 10296)
@@ -256,7 +256,8 @@
if ( prepared ) {
throw new IllegalStateException( "SelectClause was already prepared!" );
}
- if ( getSessionFactoryHelper().isStrictJPAQLComplianceEnabled() ) {
+ if ( getSessionFactoryHelper().isStrictJPAQLComplianceEnabled() && !getWalker().isSubQuery() ) {
+ // NOTE : the isSubQuery() bit is a temporary hack...
throw new QuerySyntaxException( "JPA-QL compliance requires select clause" );
}
List fromElements = fromClause.getProjectionList();
17 years, 9 months
Hibernate SVN: r10295 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-18 18:01:43 -0400 (Fri, 18 Aug 2006)
New Revision: 10295
Modified:
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
Log:
HHH-1944 : generated subqueries and jpaql compliance (derived select clause) check
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-08-18 22:01:00 UTC (rev 10294)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-08-18 22:01:43 UTC (rev 10295)
@@ -47,7 +47,7 @@
s.close();
}
- public void testSelectWithDistinctClause() {
+ public void testGeneratedSubquery() {
Session s = openSession();
s.createQuery( "select c FROM Item c WHERE c.parts IS EMPTY" ).list();
s.close();
17 years, 9 months
Hibernate SVN: r10294 - trunk/Hibernate3/src/org/hibernate/hql/ast/tree
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-18 18:01:00 -0400 (Fri, 18 Aug 2006)
New Revision: 10294
Modified:
trunk/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java
Log:
HHH-1944 : generated subqueries and jpaql compliance (derived select clause) check
Modified: trunk/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java
===================================================================
--- trunk/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java 2006-08-18 22:00:17 UTC (rev 10293)
+++ trunk/Hibernate3/src/org/hibernate/hql/ast/tree/SelectClause.java 2006-08-18 22:01:00 UTC (rev 10294)
@@ -256,7 +256,8 @@
if ( prepared ) {
throw new IllegalStateException( "SelectClause was already prepared!" );
}
- if ( getSessionFactoryHelper().isStrictJPAQLComplianceEnabled() ) {
+ if ( getSessionFactoryHelper().isStrictJPAQLComplianceEnabled() && !getWalker().isSubQuery() ) {
+ // NOTE : the isSubQuery() bit is a temporary hack...
throw new QuerySyntaxException( "JPA-QL compliance requires select clause" );
}
List fromElements = fromClause.getProjectionList();
17 years, 9 months
Hibernate SVN: r10293 - trunk/Hibernate3/test/org/hibernate/test/jpa/ql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-18 18:00:17 -0400 (Fri, 18 Aug 2006)
New Revision: 10293
Modified:
trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
Log:
HHH-1944 : generated subqueries and jpaql compliance (derived select clause) check
Modified: trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-08-18 21:53:53 UTC (rev 10292)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-08-18 22:00:17 UTC (rev 10293)
@@ -47,7 +47,7 @@
s.close();
}
- public void testSelectWithDistinctClause() {
+ public void testGeneratedSubquery() {
Session s = openSession();
s.createQuery( "select c FROM Item c WHERE c.parts IS EMPTY" ).list();
s.close();
17 years, 9 months
Hibernate SVN: r10292 - in trunk/Hibernate3/test/org/hibernate/test/instrument: cases domain runtime
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-18 17:53:53 -0400 (Fri, 18 Aug 2006)
New Revision: 10292
Modified:
trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java
trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml
trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java
trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/CGLIBInstrumentationTest.java
Log:
expanded many-to-one proxy test case
Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java 2006-08-18 21:52:34 UTC (rev 10291)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java 2006-08-18 21:53:53 UTC (rev 10292)
@@ -14,23 +14,53 @@
public void execute() {
Session s = getFactory().openSession();
Transaction t = s.beginTransaction();
- Entity parent = new Entity( "parent" );
- s.save( parent );
- Entity child = new Entity( "child", parent );
- s.save( child );
+ Entity root = new Entity( "root" );
+ Entity child1 = new Entity( "child1" );
+ Entity child2 = new Entity( "child2" );
+ root.setChild( child1 );
+ child1.setSibling( child2 );
+ Entity gChild1 = new Entity( "grandchild 1" );
+ Entity gChild2 = new Entity( "grandchild 2" );
+ child1.setChild( gChild1 );
+ gChild1.setSibling( gChild2 );
+ s.save( root );
t.commit();
s.close();
+ // NOTE : child is mapped with lazy="proxy"; sibling with lazy="no-proxy"...
+
s = getFactory().openSession();
t = s.beginTransaction();
- child = ( Entity ) s.get( Entity.class, child.getId() );
- Assert.assertFalse( Hibernate.isPropertyInitialized( child, "name" ) );
- Assert.assertTrue( Hibernate.isPropertyInitialized( child, "parent" ) );
- parent = child.getParent();
- Assert.assertFalse( Hibernate.isPropertyInitialized( parent, "name" ) );
- Assert.assertFalse( Hibernate.isPropertyInitialized( child, "name" ) );
- s.delete( child );
- s.delete( parent );
+ // load root
+ root = ( Entity ) s.get( Entity.class, root.getId() );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( root, "child" ) );
+
+ // get a handle to the child1 proxy reference (and make certain that
+ // this does not force the lazy properties of the root entity
+ // to get initialized.
+ child1 = root.getChild();
+ Assert.assertFalse( Hibernate.isInitialized( child1 ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( child1, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( child1, "sibling" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( child1, "child" ) );
+
+ child1.getName();
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( child1, "name" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( child1, "sibling" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( child1, "child" ) );
+
+ gChild1 = child1.getChild();
+ Assert.assertFalse( Hibernate.isInitialized( gChild1 ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+
+ s.delete( root );
t.commit();
s.close();
}
Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml 2006-08-18 21:52:34 UTC (rev 10291)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml 2006-08-18 21:53:53 UTC (rev 10292)
@@ -68,7 +68,8 @@
<generator class="increment"/>
</id>
<property name="name" column="NAME" type="string" lazy="true"/>
- <many-to-one name="parent" column="PRNT_ID" class="Entity" lazy="proxy"/>
+ <many-to-one name="child" column="PRNT_ID" class="Entity" lazy="proxy" cascade="all" />
+ <many-to-one name="sibling" column="RIGHT_ID" class="Entity" lazy="no-proxy" cascade="all" />
</class>
</hibernate-mapping>
Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java 2006-08-18 21:52:34 UTC (rev 10291)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java 2006-08-18 21:53:53 UTC (rev 10292)
@@ -8,7 +8,8 @@
public class Entity {
private Long id;
private String name;
- private Entity parent;
+ private Entity child;
+ private Entity sibling;
public Entity() {
}
@@ -17,15 +18,14 @@
this.name = name;
}
- public Entity(String name, Entity parent) {
- this.name = name;
- this.parent = parent;
- }
-
public Long getId() {
return id;
}
+ public void setId(Long id) {
+ this.id = id;
+ }
+
public String getName() {
return name;
}
@@ -34,11 +34,19 @@
this.name = name;
}
- public Entity getParent() {
- return parent;
+ public Entity getChild() {
+ return child;
}
- public void setParent(Entity parent) {
- this.parent = parent;
+ public void setChild(Entity child) {
+ this.child = child;
}
+
+ public Entity getSibling() {
+ return sibling;
+ }
+
+ public void setSibling(Entity sibling) {
+ this.sibling = sibling;
+ }
}
Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/CGLIBInstrumentationTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/CGLIBInstrumentationTest.java 2006-08-18 21:52:34 UTC (rev 10291)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/CGLIBInstrumentationTest.java 2006-08-18 21:53:53 UTC (rev 10292)
@@ -16,4 +16,32 @@
public static Test suite() {
return new TestSuite( CGLIBInstrumentationTest.class );
}
+
+ public void testSetFieldInterceptor() {
+ super.testSetFieldInterceptor(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public void testDirtyCheck() {
+ super.testDirtyCheck(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public void testFetchAll() throws Exception {
+ super.testFetchAll(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public void testLazy() {
+ super.testLazy(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public void testLazyManyToOne() {
+ super.testLazyManyToOne(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public void testPropertyInitialized() {
+ super.testPropertyInitialized(); //To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public void testManyToOneProxy() {
+ super.testManyToOneProxy(); //To change body of overridden methods use File | Settings | File Templates.
+ }
}
17 years, 9 months
Hibernate SVN: r10291 - in branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument: cases domain
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-08-18 17:52:34 -0400 (Fri, 18 Aug 2006)
New Revision: 10291
Modified:
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java
Log:
expanded many-to-one proxy test case
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java 2006-08-18 21:50:41 UTC (rev 10290)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/cases/TestManyToOneProxyExecutable.java 2006-08-18 21:52:34 UTC (rev 10291)
@@ -14,23 +14,53 @@
public void execute() {
Session s = getFactory().openSession();
Transaction t = s.beginTransaction();
- Entity parent = new Entity( "parent" );
- s.save( parent );
- Entity child = new Entity( "child", parent );
- s.save( child );
+ Entity root = new Entity( "root" );
+ Entity child1 = new Entity( "child1" );
+ Entity child2 = new Entity( "child2" );
+ root.setChild( child1 );
+ child1.setSibling( child2 );
+ Entity gChild1 = new Entity( "grandchild 1" );
+ Entity gChild2 = new Entity( "grandchild 2" );
+ child1.setChild( gChild1 );
+ gChild1.setSibling( gChild2 );
+ s.save( root );
t.commit();
s.close();
+ // NOTE : child is mapped with lazy="proxy"; sibling with lazy="no-proxy"...
+
s = getFactory().openSession();
t = s.beginTransaction();
- child = ( Entity ) s.get( Entity.class, child.getId() );
- Assert.assertFalse( Hibernate.isPropertyInitialized( child, "name" ) );
- Assert.assertTrue( Hibernate.isPropertyInitialized( child, "parent" ) );
- parent = child.getParent();
- Assert.assertFalse( Hibernate.isPropertyInitialized( parent, "name" ) );
- Assert.assertFalse( Hibernate.isPropertyInitialized( child, "name" ) );
- s.delete( child );
- s.delete( parent );
+ // load root
+ root = ( Entity ) s.get( Entity.class, root.getId() );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( root, "child" ) );
+
+ // get a handle to the child1 proxy reference (and make certain that
+ // this does not force the lazy properties of the root entity
+ // to get initialized.
+ child1 = root.getChild();
+ Assert.assertFalse( Hibernate.isInitialized( child1 ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( child1, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( child1, "sibling" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( child1, "child" ) );
+
+ child1.getName();
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( child1, "name" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( child1, "sibling" ) );
+ Assert.assertTrue( Hibernate.isPropertyInitialized( child1, "child" ) );
+
+ gChild1 = child1.getChild();
+ Assert.assertFalse( Hibernate.isInitialized( gChild1 ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "name" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( root, "sibling" ) );
+
+ s.delete( root );
t.commit();
s.close();
}
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml 2006-08-18 21:50:41 UTC (rev 10290)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Documents.hbm.xml 2006-08-18 21:52:34 UTC (rev 10291)
@@ -67,7 +67,8 @@
<generator class="increment"/>
</id>
<property name="name" column="NAME" type="string" lazy="true"/>
- <many-to-one name="parent" column="PRNT_ID" class="Entity" lazy="proxy"/>
+ <many-to-one name="child" column="PRNT_ID" class="Entity" lazy="proxy" cascade="all" />
+ <many-to-one name="sibling" column="RIGHT_ID" class="Entity" lazy="no-proxy" cascade="all" />
</class>
</hibernate-mapping>
\ No newline at end of file
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java 2006-08-18 21:50:41 UTC (rev 10290)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/instrument/domain/Entity.java 2006-08-18 21:52:34 UTC (rev 10291)
@@ -8,7 +8,8 @@
public class Entity {
private Long id;
private String name;
- private Entity parent;
+ private Entity child;
+ private Entity sibling;
public Entity() {
}
@@ -17,15 +18,14 @@
this.name = name;
}
- public Entity(String name, Entity parent) {
- this.name = name;
- this.parent = parent;
- }
-
public Long getId() {
return id;
}
+ public void setId(Long id) {
+ this.id = id;
+ }
+
public String getName() {
return name;
}
@@ -34,11 +34,19 @@
this.name = name;
}
- public Entity getParent() {
- return parent;
+ public Entity getChild() {
+ return child;
}
- public void setParent(Entity parent) {
- this.parent = parent;
+ public void setChild(Entity child) {
+ this.child = child;
}
+
+ public Entity getSibling() {
+ return sibling;
+ }
+
+ public void setSibling(Entity sibling) {
+ this.sibling = sibling;
+ }
}
17 years, 9 months