I use oracle9i to store information,my
Code:
<class name="events.Event" table="EVENTS">
<id name="id" column="EVENT_ID">
<generator class="hilo">
<param name="table">test</param>
<param name="column">next_value</param>
<param name="max_lo">100</param>
</generator>
</id>
<property name="date" type="timestamp" column="EVENT_DATE"/>
<property name="title"/>
</class>
My table is follows:
SQL> desc test
Name Type
------------------------------------
NEXT_VALUE NUMBER(38)
SQL> desc events;
Name Type
-------------------------------------
EVENT_ID NUMBER(19)
EVENT_DATE TIMESTAMP(6)
TITLE VARCHAR2(255 CHAR)
When I run my code,it raise following error:
Exception in thread "main" org.hibernate.id.IdentifierGenerationException: could not read a hi value - you need to populate the table: test
at org.hibernate.id.TableGenerator.doWorkInCurrentTransaction(TableGenerator.java:138)
at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:38)
at org.hibernate.engine.transaction.Isolater$JdbcDelegate.delegateWork(Isolater.java:187)
at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:43)
at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:51)
at org.hibernate.id.TableGenerator.generate(TableGenerator.java:94)
at org.hibernate.id.TableHiLoGenerator.generate(TableHiLoGenerator.java:62)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId
(AbstractSaveEventListener.java:99)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGene
ratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrR
equestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTran
sient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(
DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtection
Wrapper.invoke(ThreadLocalSessionContext.java:301)
at $Proxy0.save(Unknown Source)
at events.EventManager.createAndStoreEvent(EventManager.java:40)
at events.EventManager.main(EventManager.java:10)
I guess I may create table wrong test,maybe miss some columns,but I don't know how to do it.Anybody could tell me how to do it?
Thanks
Edward