Here's how to have hibernate use a sequence in a different schema than the one used for the class.
In most places, hibernate needs a separate schema attribute to change the default schema. In the case of sequences, hibernate can use a fully qualified or unqualified name (i.e. schema.seq vs seq). I'm not really sure what it does if you have a . in the sequence name.. maybe that's not allowed.
XDoclet
/**
* @hibernate.id column="id" unsaved-value="null"
* @hibernate.generator class="sequence"
* @hibernate.param name="sequence"
value="SCHEMA2.HIBERNATE_SEQUENCE"
*/
User.hbm.xml
<class
name="com.company.adf.ddf.model.User"
table="app_user" schema="SCHEMA1" >
<id name="id" column="id" unsaved-value="null" >
<generator class="sequence" >
<param name="sequence">
<![CDATA[SCHEMA2.HIBERNATE_SEQUENCE]]>
</param>
</generator>
</id>
...
</class>
For "increment" generator
Here's how to do it for the increment generator type. It uses the more pervasive method of specifying a schema...
XDoclet
/** * @hibernate.id column="id" unsaved-value="null" * @hibernate.generator class="increment" * @hibernate.param name="schema" value="SCHEMA2" */ public Long getId() { return id; }Hibernate.hbm.xml
<generator class="increment"> <param name="schema"> <![CDATA[SCHEMA2]]> </param> </generator>