[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Hibernate with Oracle10g, Inheritance issue
trouby
do-not-reply at jboss.com
Tue Aug 14 05:54:20 EDT 2007
Hello,
I have an abstract class (Base) that looks as follows:
| @Entity
| @Table(name="MyTable")
| @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
| @DiscriminatorColumn(name="OVERRIDE_LEVEL")
|
| class abstract Base {
| some properties here
| ..
| ..
| }
|
Then I have two classes that inherit from this base class that looks like:
| @Entity
| @DiscriminatorValue("Y_INSTANCE")
| public class YBase extends Baseimplements Serializable {
| ...
| }
|
and another one as:
| @Entity
| @DiscriminatorValue("Z_INSTANCE")
| public class ZBase extends Baseimplements Serializable {
|
| private SomeEntity someEntity;
|
| setter...
|
| @ManyToOne(optional=false)
| @JoinColumn(name="SOME_ENTITY_ID", nullable=false, unique=false)
| public SomeEntity getSomeEntity() {
| return someEntity;
| }
|
| }
|
With Mysql, When I persist YBase entities, everything work fine, and I see under the 'SOME_ENTITY_ID' column a value '0',
I assume hibernate set a default value as 0 automatically although the column definition in msql is set as 'NOT_NULL' without a default value.
In oracle, I get an exception as follows:
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("IDM_PREPRD_REPOSITORY"."MY_TABLE"."SOME_ENTITY_ID")
and in the database I can see that the column is set as NOT NULL, but a default value is not set when persisting YBASE entities which has no relationship with the SomeEntity entity,
Any idea?
there's a way to fix this issue except annotating the 'getSomeEntity' as optional?
thanks,
Asaf.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4073905#4073905
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4073905
More information about the jboss-user
mailing list