Author: epbernard
Date: 2006-06-26 18:35:11 -0400 (Mon, 26 Jun 2006)
New Revision: 10052
Removed:
trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/Document.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/LuceneTest.java
Modified:
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java
Log:
tests on polymorphism and better user feedback
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java 2006-06-26 22:23:32 UTC (rev 10051)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/EntityBinder.java 2006-06-26 22:35:11 UTC (rev 10052)
@@ -63,6 +63,7 @@
private boolean isPropertyAnnotated = false;
private boolean dynamicInsert;
private boolean dynamicUpdate;
+ private boolean explicitHibernateEntityAnnotation;
private boolean mutable;
private OptimisticLockType optimisticLockType;
private String persister;
@@ -113,6 +114,7 @@
persister = hibAnn.persister();
selectBeforeUpdate = hibAnn.selectBeforeUpdate();
polymorphismType = hibAnn.polymorphism();
+ explicitHibernateEntityAnnotation = true;
}
else {
//default values when the annotation is not there
@@ -164,6 +166,12 @@
rootClass.setLazyPropertiesCacheable( cacheLazyProperty );
}
}
+ else {
+ if (explicitHibernateEntityAnnotation) {
+ log.warn("@org.hibernate.annotations.Entity used on a non root entity: ignored for "
+ + annotatedClass.getName() );
+ }
+ }
persistentClass.setOptimisticLockMode( getVersioning( optimisticLockType ) );
persistentClass.setSelectBeforeUpdate( selectBeforeUpdate );
if ( ! AnnotationBinder.isDefault( persister ) ) {
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java 2006-06-26 22:23:32 UTC (rev 10051)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/polymorphism/SportCar.java 2006-06-26 22:35:11 UTC (rev 10052)
@@ -4,10 +4,13 @@
import javax.persistence.Entity;
import javax.persistence.Table;
+import org.hibernate.annotations.PolymorphismType;
+
/**
* @author Emmanuel Bernard
*/
@Entity
@Table(name = "sport_car")
+@org.hibernate.annotations.Entity(polymorphism = PolymorphismType.EXPLICIT) //raise a warn
public class SportCar extends Car {
}
Deleted: trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/Document.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/Document.java 2006-06-26 22:23:32 UTC (rev 10051)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/Document.java 2006-06-26 22:35:11 UTC (rev 10052)
@@ -1,72 +0,0 @@
-//$Id$
-package org.hibernate.test.lucene;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Lob;
-
-import org.hibernate.lucene.Indexed;
-import org.hibernate.lucene.Keyword;
-import org.hibernate.lucene.Text;
-import org.hibernate.lucene.Unstored;
-import org.hibernate.lucene.Boost;
-
-@Entity
-@Indexed(index = "Documents")
-public class Document {
- private Long id;
- private String title;
- private String summary;
- private String text;
-
- Document() {
- }
-
- public Document(String title, String summary, String text) {
- super();
- this.summary = summary;
- this.text = text;
- this.title = title;
- }
-
- @Id
- @GeneratedValue
- @Keyword(id = true)
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- @Text
- @Boost(2)
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- @Unstored(name = "Abstract")
- public String getSummary() {
- return summary;
- }
-
- public void setSummary(String summary) {
- this.summary = summary;
- }
-
- @Lob
- @Unstored
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-}
Deleted: trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/LuceneTest.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/LuceneTest.java 2006-06-26 22:23:32 UTC (rev 10051)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/lucene/LuceneTest.java 2006-06-26 22:35:11 UTC (rev 10052)
@@ -1,195 +0,0 @@
-//$Id$
-package org.hibernate.test.lucene;
-
-import java.io.File;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.apache.lucene.analysis.StopAnalyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermDocs;
-import org.apache.lucene.queryParser.QueryParser;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Hits;
-import org.hibernate.Session;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.event.PostDeleteEventListener;
-import org.hibernate.event.PostInsertEventListener;
-import org.hibernate.event.PostUpdateEventListener;
-import org.hibernate.lucene.Environment;
-import org.hibernate.lucene.event.LuceneEventListener;
-
-/**
- * @author Gavin King
- */
-public class LuceneTest extends org.hibernate.test.annotations.TestCase {
-
- public LuceneTest(String str) {
- super( str );
- }
-
- @Override
- protected void setUp() throws Exception {
- File sub = getBaseIndexDir();
- sub.mkdir();
- super.setUp();
- }
-
- private File getBaseIndexDir() {
- File current = new File( "." );
- File sub = new File( current, "indextemp" );
- return sub;
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- File sub = getBaseIndexDir();
- delete( sub );
- }
-
- private void delete(File sub) {
- if ( sub.isDirectory() ) {
- for ( File file : sub.listFiles() ) {
- delete( file );
- }
- sub.delete();
- }
- else {
- sub.delete();
- }
- }
-
- public void testLucene() throws Exception {
-
-
- Session s = getSessions().openSession();
- s.getTransaction().begin();
- s.persist(
- new Document( "Hibernate in Action", "Object/relational mapping with Hibernate", "blah blah blah" )
- );
- s.getTransaction().commit();
- s.close();
-
- IndexReader reader = IndexReader.open( new File( getBaseIndexDir(), "Documents" ) );
- try {
- int num = reader.numDocs();
- assertEquals( 1, num );
- TermDocs docs = reader.termDocs( new Term( "Abstract", "Hibernate" ) );
- org.apache.lucene.document.Document doc = reader.document( docs.doc() );
- assertFalse( docs.next() );
- docs = reader.termDocs( new Term( "Title", "Action" ) );
- doc = reader.document( docs.doc() );
- assertFalse( docs.next() );
- assertEquals( "1", doc.getField( "id" ).stringValue() );
- }
- finally {
- reader.close();
- }
-
- s = getSessions().openSession();
- s.getTransaction().begin();
- Document entity = (Document) s.get( Document.class, new Long( 1 ) );
- entity.setSummary( "Object/relational mapping with EJB3" );
- s.persist( new Document( "Seam in Action", "", "blah blah blah blah" ) );
- s.getTransaction().commit();
- s.close();
-
- reader = IndexReader.open( new File( getBaseIndexDir(), "Documents" ) );
- try {
- int num = reader.numDocs();
- assertEquals( 2, num );
- TermDocs docs = reader.termDocs( new Term( "Abstract", "EJB3" ) );
- org.apache.lucene.document.Document doc = reader.document( docs.doc() );
- assertFalse( docs.next() );
- }
- finally {
- reader.close();
- }
-
- s = getSessions().openSession();
- s.getTransaction().begin();
- s.delete( entity );
- s.getTransaction().commit();
- s.close();
-
- reader = IndexReader.open( new File( getBaseIndexDir(), "Documents" ) );
- try {
- int num = reader.numDocs();
- assertEquals( 1, num );
- TermDocs docs = reader.termDocs( new Term( "Title", "Seam" ) );
- org.apache.lucene.document.Document doc = reader.document( docs.doc() );
- assertFalse( docs.next() );
- assertEquals( "2", doc.getField( "id" ).stringValue() );
- }
- finally {
- reader.close();
- }
-
- s = getSessions().openSession();
- s.getTransaction().begin();
- s.delete( s.createCriteria( Document.class ).uniqueResult() );
- s.getTransaction().commit();
- s.close();
- }
-
- public void testBoost() throws Exception {
-
-
- Session s = getSessions().openSession();
- s.getTransaction().begin();
- s.persist(
- new Document( "Hibernate in Action", "Object and Relational", "blah blah blah" )
- );
- s.persist(
- new Document( "Object and Relational", "Hibernate in Action", "blah blah blah" )
- );
- s.getTransaction().commit();
- s.close();
-
- IndexSearcher searcher = new IndexSearcher( new File( getBaseIndexDir(), "Documents" ).getCanonicalPath() );
- try {
- QueryParser qp = new QueryParser("id", new StandardAnalyzer() );
- Hits hits = searcher.search( qp.parse("title:Action OR Abstract:Action") );
- assertEquals( 2, hits.length() );
- assertTrue( hits.score( 0 ) == 2*hits.score( 1 ) );
- assertEquals( "Hibernate in Action", hits.doc(0).get( "title") );
- }
- finally {
- if (searcher != null) searcher.close();
- }
-
-
- s = getSessions().openSession();
- s.getTransaction().begin();
- List list = s.createQuery( "from Document" ).list();
- for (Document document : (List<Document>) list) {
- s.delete( document );
- }
- s.getTransaction().commit();
- s.close();
- }
-
- protected Class[] getMappings() {
- return new Class[]{Document.class};
- }
-
- public static Test suite() {
- return new TestSuite( LuceneTest.class );
- }
-
- protected void configure(Configuration cfg) {
- File sub = getBaseIndexDir();
- cfg.setProperty( Environment.INDEX_BASE_DIR, sub.getAbsolutePath() );
- cfg.setProperty( Environment.ANALYZER_CLASS, StopAnalyzer.class.getName() );
- LuceneEventListener del = new LuceneEventListener();
- cfg.getEventListeners().setPostCommitDeleteEventListeners( new PostDeleteEventListener[]{del} );
- cfg.getEventListeners().setPostCommitUpdateEventListeners( new PostUpdateEventListener[]{del} );
- cfg.getEventListeners().setPostCommitInsertEventListeners( new PostInsertEventListener[]{del} );
- }
-
-}
-
|