I'm trying to use the Java Persistence annotations to the manual, chapter two, but I get the following error:
Buildfile: C:\Documents and Settings\empalacios\workspaceManningJP\HelloWorldJP2\build.xml
clean:
[delete] Deleting directory C:\Documents and Settings\empalacios\workspaceManningJP\HelloWorldJP2\bin
[mkdir] Created dir: C:\Documents and Settings\empalacios\workspaceManningJP\HelloWorldJP2\bin
compile:
[javac] Compiling 3 source files to C:\Documents and Settings\empalacios\workspaceManningJP\HelloWorldJP2\bin
copymetafiles:
[copy] Copying 2 files to C:\Documents and Settings\empalacios\workspaceManningJP\HelloWorldJP2\bin
run:
[java] 15-mar-2010 8:38:08 org.hibernate.cfg.Environment <clinit>
[java] INFO: Hibernate 3.3.2.GA
[java] 15-mar-2010 8:38:08 org.hibernate.cfg.Environment <clinit>
[java] INFO: hibernate.properties not found
[java] 15-mar-2010 8:38:08 org.hibernate.cfg.Environment buildBytecodeProvider
[java] INFO: Bytecode provider name : javassist
[java] 15-mar-2010 8:38:08 org.hibernate.cfg.Environment <clinit>
[java] INFO: using JDK 1.4 java.sql.Timestamp handling
[java] 15-mar-2010 8:38:08 org.hibernate.annotations.common.Version <clinit>
[java] INFO: Hibernate Commons Annotations 3.1.0.GA
[java] 15-mar-2010 8:38:08 org.hibernate.cfg.Configuration configure
[java] INFO: configuring from resource: /hibernate.cfg.xml
[java] 15-mar-2010 8:38:08 org.hibernate.cfg.Configuration getConfigurationInputStream
[java] INFO: Configuration resource: /hibernate.cfg.xml
[java] 15-mar-2010 8:38:09 org.hibernate.cfg.Configuration doConfigure
[java] INFO: Configured SessionFactory: null
[java] 15-mar-2010 8:38:10 org.hibernate.connection.DriverManagerConnectionProvider configure
[java] INFO: Using Hibernate built-in connection pool (not for production use!)
[java] 15-mar-2010 8:38:10 org.hibernate.connection.DriverManagerConnectionProvider configure
[java] INFO: Hibernate connection pool size: 20
[java] 15-mar-2010 8:38:10 org.hibernate.connection.DriverManagerConnectionProvider configure
[java] INFO: autocommit mode: false
[java] 15-mar-2010 8:38:10 org.hibernate.connection.DriverManagerConnectionProvider configure
[java] INFO: using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:hsql://localhost
[java] 15-mar-2010 8:38:10 org.hibernate.connection.DriverManagerConnectionProvider configure
[java] INFO: connection properties: {user=sa}
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: RDBMS: HSQL Database Engine, version: 1.8.0
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: JDBC driver: HSQL Database Engine Driver, version: 1.8.0
[java] 15-mar-2010 8:38:10 org.hibernate.dialect.Dialect <init>
[java] INFO: Using dialect: org.hibernate.dialect.HSQLDialect
[java] 15-mar-2010 8:38:10 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
[java] INFO: Using default transaction strategy (direct JDBC transactions)
[java] 15-mar-2010 8:38:10 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
[java] INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Automatic flush during beforeCompletion(): disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Automatic session close at end of transaction: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: JDBC batch size: 15
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: JDBC batch updates for versioned data: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Scrollable result sets: enabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: JDBC3 getGeneratedKeys(): disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Connection release mode: auto
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Default batch fetch size: 1
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Generate SQL with comments: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Order SQL updates by primary key: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Order SQL inserts for batching: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
[java] INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
[java] 15-mar-2010 8:38:10 org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
[java] INFO: Using ASTQueryTranslatorFactory
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Query language substitutions: {}
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: JPA-QL strict compliance: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Second-level cache: enabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Query cache: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory createRegionFactory
[java] INFO: Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Optimize cache for minimal puts: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Structured second-level cache entries: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Echoing all SQL to stdout
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Statistics: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Deleted entity synthetic identifier rollback: disabled
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Default entity-mode: pojo
[java] 15-mar-2010 8:38:10 org.hibernate.cfg.SettingsFactory buildSettings
[java] INFO: Named query checking : enabled
[java] 15-mar-2010 8:38:10 org.hibernate.impl.SessionFactoryImpl <init>
[java] INFO: building session factory
[java] 15-mar-2010 8:38:11 org.hibernate.impl.SessionFactoryObjectFactory addInstance
[java] INFO: Not binding factory to JNDI, no JNDI name configured
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: Logging statistics....
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: start time: 1268638690504
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: sessions opened: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: sessions closed: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: transactions: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: successful transactions: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: optimistic lock failures: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: flushes: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: connections obtained: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: statements prepared: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: statements closed: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: second level cache puts: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: second level cache hits: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: second level cache misses: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: entities loaded: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: entities updated: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: entities inserted: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: entities deleted: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: entities fetched (minimize this): 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: collections loaded: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: collections updated: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: collections removed: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: collections recreated: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: collections fetched (minimize this): 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: queries executed to database: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: query cache puts: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: query cache hits: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: query cache misses: 0
[java] 15-mar-2010 8:38:11 org.hibernate.stat.StatisticsImpl logSummary
[java] INFO: max query time: 0ms
[java] 08:38:08,77208:38:09,09908:38:09,49008:38:09,56808:38:09,78608:38:09,989Hibernate:
[java] insert
[java] into
[java] MESSAGES
[java] (MESSAGE_ID, NEXT_MESSAGE_ID, MESSAGE_TEXT)
[java] values
[java] (null, ?, ?)
[java] 15-mar-2010 8:38:11 org.hibernate.util.JDBCExceptionReporter logExceptions
[java] ADVERTENCIA: SQL Error: -22, SQLState: S0002
[java] 15-mar-2010 8:38:11 org.hibernate.util.JDBCExceptionReporter logExceptions
[java] GRAVE: Table not found in statement [insert into MESSAGES (MESSAGE_ID, NEXT_MESSAGE_ID, MESSAGE_TEXT) values (null, ?, ?)]
[java] Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [hello.Message]
[java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
[java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
[java] at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:64)
[java] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2176)
[java] at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2656)
[java] at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
[java] at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
[java] at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
[java] at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
[java] at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
[java] at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
[java] at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
[java] at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
[java] at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
[java] at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
[java] at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:563)
[java] at org.hibernate.impl.SessionImpl.save(SessionImpl.java:551)
[java] at org.hibernate.impl.SessionImpl.save(SessionImpl.java:547)
[java] at hello.HelloWorld.main(Unknown Source)
[java] Caused by: java.sql.SQLException: Table not found in statement [insert into MESSAGES (MESSAGE_ID, NEXT_MESSAGE_ID, MESSAGE_TEXT) values (null, ?, ?)]
[java] at org.hsqldb.jdbc.Util.throwError(Unknown Source)
[java] at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
[java] at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
[java] at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
[java] at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)
[java] at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:54)
[java] ... 16 more
[java] Java Result: 1
BUILD SUCCESSFUL
Total time: 6 seconds
It appears that you do not find the table, can anyone tell me what I'm missing?
This is my hibernate.cfg.xml:
Code:
<!DOCTYPE hibernate-configuration SYSTEM
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">
org.hsqldb.jdbcDriver
</property>
<property name="hibernate.connection.url">
jdbc:hsqldb:hsql://localhost
</property>
<property name="hibernate.connection.username">
sa
</property>
<property name="hibernate.dialect">
org.hibernate.dialect.HSQLDialect
</property>
<!-- Usando la conexión de c3p0 -->
<!-- Valor mínimo de conexiones JDBC que C3PO puede mantener -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- Valor máximo de conexiones que el pool puede mantener, si se pasa, lanzará una excepcion -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- Periodo de tiempo después del cual la conexión será borrada -->
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_text_period">3000</property>
<!-- Para mostrar e imprimir SQL y stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- List of annotated classes-->
<mapping class="hello.Message"/>
<!-- List of packages with package-info.java -->
<mapping package="hello"/>
</session-factory>
</hibernate-configuration>
Messaje.java
Code:
package hello;
import javax.persistence.*;
@Entity
@Table(name="MESSAGES")
public class Message{
@Id
@GeneratedValue
@Column (name="MESSAGE_ID")
private Long id;
@Column (name="MESSAGE_TEXT")
private String text;
@ManyToOne (cascade = CascadeType.ALL)
@JoinColumn (name ="NEXT_MESSAGE_ID")
private Message nextMessage;
public Message(){}
public Message (String text)
{
this.text = text;
}
public Long getId()
{
return id;
}
public void setId (Long id)
{
this.id = id;
}
public String getText ()
{
return text;
}
public void setText (String text)
{
this.text = text;
}
public Message getNextMessage()
{
return nextMessage;
}
public void setNextMessage(Message nextMessage)
{
this.nextMessage = nextMessage;
}
}
and HibernateUtil.java
Code:
package persistence;
import org.hibernate.*;
import org.hibernate.cfg.*;
import org.hibernate.stat.EntityStatistics;
import org.hibernate.stat.Statistics;
public class HibernateUtil {
private static SessionFactory sessionFactory;
static
{
try
{
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
stats.setStatisticsEnabled(true);
stats.getSessionOpenCount();
stats.logSummary();
EntityStatistics itemStats = stats.getEntityStatistics("auction.model.Item");
itemStats.getFetchCount();
//fin de párrafo
}
catch (Throwable ex)
{
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory()
{
//Alternativamente, se puede buscar aquí el JNDI
return sessionFactory;
}
public static void shutdown()
{
//Aquí se cierran las caches y el pool de conexiones
getSessionFactory().close();
}
}
Thank you very much, greetings
Elena