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") +...@or...notations.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} ); - } - -} - |