You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2006/10/16 02:53:47 UTC
svn commit: r464345 -
/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
Author: arminw
Date: Sun Oct 15 17:53:46 2006
New Revision: 464345
URL: http://svn.apache.org/viewvc?view=rev&rev=464345
Log:
add support for
-stored procedure based sequence key generation
-per field sequence manager declaration
-renamed/changed attributes
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml?view=diff&rev=464345&r1=464344&r2=464345
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/doc/forrest/src/documentation/content/xdocs/docu/guides/sequencemanager.xml Sun Oct 15 17:53:46 2006
@@ -72,7 +72,9 @@
this column is
<code>INTEGER</code>. This
is a primary key column and OJB shall automatically assign unique values
- to this attribute.
+ to this attribute using the default
+ <a href="ext:sequence-manager"><code>SequenceManager</code></a> defined within the
+ <a href="site:jdbc-connection-descriptor"><code>jdbc-connection-descriptor</code></a>.
</p>
<p>
@@ -83,6 +85,118 @@
</section>
+
+ <section>
+ <title>How to enable/change the sequence manager?</title>
+ <p>
+ To enable a (specific)
+ <a href="ext:sequence-manager"><code>SequenceManager</code></a> implementation for automatic
+ assignment of unquie values declare a <em>sequence-manager</em> element within the
+ <a href="site:jdbc-connection-descriptor">jdbc-connection-descriptor</a> in the
+ <a href="site:repository">repository file</a>.
+ <br/>
+ If no <em>sequence-manager</em> is specified in the
+ <em>jdbc-connection-descriptor</em>, OJB use a default sequence manager implementation
+ (default is <a href="#in-memory"><em>SequenceManagerInMemoryImpl</em></a>).
+ </p>
+ <p>
+ Further information you could find in the
+ <a href="ext:repository.dtd">repository.dtd</a> section sequence-manager element.
+ </p>
+ <p>
+ Example
+ <em>jdbc-connection-descriptor</em> using
+ a <em>sequence-manager</em> tag:
+ </p>
+ <source><![CDATA[
+<jdbc-connection-descriptor
+ jcd-alias="farAway"
+ platform="Hsqldb"
+ jdbc-level="2.0"
+ driver="org.hsqldb.jdbcDriver"
+ protocol="jdbc"
+ subprotocol="hsqldb"
+ dbalias="../OJB_FarAway"
+ username="sa"
+ password=""
+ batch-mode="false"
+ >
+
+ <connection-pool
+ maxActive="5"
+ whenExhaustedAction="0"
+ validationQuery="select count(*) from OJB_HL_SEQ"
+ />
+
+ <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">
+ <attribute attribute-name="seq.start" attribute-value="10000"/>
+ <attribute attribute-name="seq.grabSize" attribute-value="20"/>
+ </sequence-manager>
+</jdbc-connection-descriptor>]]></source>
+ <p>
+ The mandatory
+ <em>className</em> attribute needs the <strong>full-qualified class name</strong>
+ of the desired sequence-manager implementation or the OJB-shortcut name (since OJB 1.0.5, all
+ shipped implementations can be declared via a shortcut name - more details see description
+ of the implementation).
+ <br/>
+ If a implementation needs configuration properties you pass them using
+ <a href="site:repository/custom-attribute">custom attribute</a> tags with
+ <em>attribute-name</em> represents the property name and
+ <em>attribute-value</em> the property value.
+ Each sequence manager implementation shows all properties in the implementation
+ documentation section or on the according javadoc page.
+ </p>
+
+ <anchor id="per-field-sequence"/>
+ <section>
+ <title>Define specific <code>SequenceManager</code> for each <code>FieldDescriptor</code></title>
+ <p>
+ By default this feature is disabled. Enable it by setting attribute <em>'seq.perField'</em>
+ within the global (default) sequence manager element within the
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a>:
+ </p>
+ <source><![CDATA[
+<jdbc-connection-descriptor ...>
+...
+ <sequence-manager className="hilo">
+ <!-- The attribute 'seq.perField': If set 'true' it's possible to define per
+ field-descriptor sequence manager. This way you can use different sequence
+ identifier generation strategies. If set 'false' only the default sequence manager
+ defined within the jdbc-connection-descriptor is used and all sequence descriptors defined
+ on field-descriptor level are ignored -->
+ <attribute attribute-name="seq.perField" attribute-value="true"/>
+ ...
+ </sequence-manager>
+</jdbc-connection-descriptor]]></source>
+ <p>
+ Now it's possible to associate specific
+ <a href="site:repository/field-descriptor"><em>field-descriptor</em></a> with other
+ <em>sequence manager</em> implementations than the global defined.
+ </p>
+ <source><![CDATA[
+<class-descriptor
+ class="my.Group"
+ table="GROUP"
+>
+ <field-descriptor name="id" column="ID" jdbc-type="INTEGER"
+ primarykey="true" autoincrement="true"
+ >
+ <sequence-manager className="memory"/>
+ </field-descriptor>
+...
+</class-descriptor>]]></source>
+ <p>
+ If <a href="site:faq/multiple-databases">multiple databases/connections</a> are used
+ enable per field sequences for each database. If attribute <em>'seq.perField'</em>
+ is disabled all <em>sequence-manager</em> settings within
+ <a href="site:repository/field-descriptor"><em>field-descriptor</em></a> are ignored.
+ </p>
+ </section>
+
+ </section>
+
+
<anchor id="force-id"/>
<section>
<title>Force computation of unique values</title>
@@ -176,67 +290,6 @@
<section>
- <title>How to change the sequence manager?</title>
- <p>
- To enable a specific
- <a href="ext:sequence-manager"><code>SequenceManager</code></a> implementation declare
- an <em>sequence-manager</em> attribute within the
- <a href="site:jdbc-connection-descriptor">jdbc-connection-descriptor</a>
- element in the <a href="site:repository">repository file</a>.
- <br/>
- If no <em>sequence-manager</em> was specified in the
- <em>jdbc-connection-descriptor</em>, OJB use a default sequence manager implementation
- (default was <em>SequenceManagerHighLowImpl</em>).
- </p>
- <p>
- Further information you could find in the
- <a href="ext:repository.dtd">repository.dtd</a> section sequence-manager element.
- </p>
- <p>
- Example
- <em>jdbc-connection-descriptor</em> using
- a <em>sequence-manager</em> tag:
- </p>
- <source><![CDATA[
-<jdbc-connection-descriptor
- jcd-alias="farAway"
- platform="Hsqldb"
- jdbc-level="2.0"
- driver="org.hsqldb.jdbcDriver"
- protocol="jdbc"
- subprotocol="hsqldb"
- dbalias="../OJB_FarAway"
- username="sa"
- password=""
- batch-mode="false"
- >
-
- <connection-pool
- maxActive="5"
- whenExhaustedAction="0"
- validationQuery="select count(*) from OJB_HL_SEQ"
- />
-
- <sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">
- <attribute attribute-name="seq.start" attribute-value="10000"/>
- <attribute attribute-name="grabSize" attribute-value="20"/>
- </sequence-manager>
-</jdbc-connection-descriptor>]]></source>
- <p>
- The mandatory
- <em>className</em> attribute needs the <strong>full-qualified class name</strong>
- of the desired sequence-manager implementation. If a implementation needs configuration
- properties you pass them using
- <a href="site:repository/custom-attribute">custom attribute</a> tags with
- <em>attribute-name</em> represents the property name and
- <em>attribute-value</em>
- the property value. Each sequence manager implementation shows all properties on
- the according javadoc page.
- </p>
- </section>
-
-
- <section>
<title>SequenceManager implementations</title>
<p>
Source code of all
@@ -253,7 +306,7 @@
<title>High/Low sequence manager</title>
<p>
The <a href="ext:sequence-manager">sequence manager</a> implementation class
- <code>ojb.broker.util.sequence.SequenceManagerHighLowImpl</code>
+ <code>org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl</code>
and is able to generate ID's unique to a given object and
all <a href="site:advanced-technique/extents"><em>extent</em> objects</a> declarated in the
objects class descriptor.
@@ -274,17 +327,19 @@
(called <em>repository_internal.xml</em>)</a>.
</p>
<p>
- To declare this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
element within the
- <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a>:
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>hilo</em>:
</p>
<source><![CDATA[
-<sequence-manager className=
- "org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">
-
+<!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl">-->
+<sequence-manager className="hilo">
<attribute attribute-name="seq.start" attribute-value="5000"/>
- <attribute attribute-name="grabSize" attribute-value="20"/>
- <attribute attribute-name="autoNaming" attribute-value="true"/>
+ <attribute attribute-name="seq.grabSize" attribute-value="20"/>
+ <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
<attribute attribute-name="globalSequenceId" attribute-value="false"/>
<!-- deprecated settings -->
<attribute attribute-name="sequenceStart" attribute-value="5000"/>
@@ -299,10 +354,10 @@
</p>
<p>
With property
- <code>grabSize</code> you set the size of the assigned ID's kept
+ <code>seq.grabSize</code> you set the size of the assigned ID's kept
in memory for each <em>autoincrement</em> field. If the assigned ID's
are exhausted a database call is made to lookup the next bunch
- of ID's (default <em>grabSize</em> is 20).
+ of ID's (default <em>seq.grabSize</em> is 20).
<br/>
If OJB was shutdown/redeployed all unused assigned ID's are lost.
</p>
@@ -323,10 +378,10 @@
to manage the sequences - more about
<a href="#sequence-name"><em>sequence-names</em> here</a>.
<br/>
- The attribute <code>autoNaming</code> can be used to enable <em>auto-generation</em>
+ The attribute <code>seq.autoNaming</code> can be used to enable <em>auto-generation</em>
of <em>sequence-names</em>, default value is <em>true</em>.
<br/>
- More info about attribute <a href="#auto-naming"><em>autoNaming</em> here</a>.
+ More info about attribute <a href="#auto-naming"><em>seq.autoNaming</em> here</a>.
</p>
<p>
Limitations:
@@ -349,7 +404,7 @@
Another sequence manager implementation is a
<em>In-Memory</em> version
called
- <code>ojb.broker.util.sequence.SequenceManagerInMemoryImpl</code>.
+ <code>org.apache.ojb.broker.util.sequence.SequenceManagerInMemoryImpl</code>.
<br/>
Only the first time an UID was requested for a object,
the manager query the database for the max value of the target
@@ -359,14 +414,18 @@
using the same mechanism as the High/Low sequence manager implementation.
</p>
<p>
- To declare this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
element within the
- <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a>:
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>memory</em>:
</p>
<source><![CDATA[
-<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerInMemoryImpl">
+<!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerInMemoryImpl">-->
+<sequence-manager className="memory">
<attribute attribute-name="seq.start" attribute-value="0"/>
- <attribute attribute-name="autoNaming" attribute-value="true"/>
+ <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
</sequence-manager>]]></source>
<p>
The property
@@ -381,10 +440,10 @@
sequence-names</em> as well as <em>automatic generated sequence-names</em>
to manage the sequences - more about <a href="#sequence-name">sequence-names</a>.
<br/>
- The attribute <code>autoNaming</code> can be used to enable <em>auto-generation</em>
+ The attribute <code>seq.autoNaming</code> can be used to enable <em>auto-generation</em>
of <em>sequence-names</em>, default value is <em>true</em>.
<br/>
- More info about <a href="#auto-naming">autoNaming</a>.
+ More info about <a href="#auto-naming">seq.autoNaming</a>.
</p>
<p>
The specified sequences will only be used <em>in memory</em>. First time a sequence was used
@@ -420,7 +479,7 @@
e.g. <code>CREATE SEQUENCE sequenceName</code>. This implementation use database
based sequences to assign ID's in <em>autoincrement fields</em>.
<br/>
- The sequences can be managed by hand, by a database tool or by OJB. If the <em>autoNaming</em>
+ The sequences can be managed by hand, by a database tool or by OJB. If the <em>seq.autoNaming</em>
attribute is enabled OJB creates sequences if needed. Also it's possible to declare
<em>sequence names</em> in the <a href="site:repository/field-descriptor">field-descriptor</a>
</p>
@@ -441,14 +500,18 @@
....
</class-descriptor>]]></source>
<p>
- To declare this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
element within the
- <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a>:
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>nextval</em>:
</p>
<source><![CDATA[
-<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
+<!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">-->
+<sequence-manager className="nextval">
<attribute attribute-name="seq.start" attribute-value="200000"/>
- <attribute attribute-name="autoNaming" attribute-value="true"/>
+ <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
<!-- optional attributes supported by Oracle, PostgreSQL, MaxDB/SapDB, DB2 -->
<!-- attribute attribute-name="seq.incrementBy" attribute-value="1"/ -->
@@ -460,11 +523,11 @@
</sequence-manager>]]></source>
<p>
Attribute
- <code>autoNaming</code>, default setting is <em>true</em>. If set <em>true</em> OJB will
+ <code>seq.autoNaming</code>, default setting is <em>true</em>. If set <em>true</em> OJB will
try to auto-generate a sequence name if none was found in
<a href="site:repository/field-descriptor">field-descriptor's</a>
<em>sequence-name</em> attribute and create a database sequence if needed - more
- details see <a href="#auto-naming">autoNaming</a> section.
+ details see <a href="#auto-naming">seq.autoNaming</a> section.
<br/>
The auto-generated name will be set as
<a href="#sequence-name"><em>sequence-name</em></a> in the <em>field-descriptor</em>.
@@ -597,17 +660,26 @@
<a href="#database-sequences-based">above</a>, but
use a high/low algorithm to avoid database access.
</p>
+ <p>
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ element within the
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>seqhilo</em>:
+ </p>
<source><![CDATA[
-<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerSeqHiLoImpl">
- <attribute attribute-name="grabSize" attribute-value="20"/>
- <attribute attribute-name="autoNaming" attribute-value="true"/>
+<!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerSeqHiLoImpl">-->
+<sequence-manager className="seqhilo">
+ <attribute attribute-name="seq.grabSize" attribute-value="20"/>
+ <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
</sequence-manager>]]></source>
<p>
With property
- <code>grabSize</code> you set the size of the assigned ID's kept
+ <code>seq.grabSize</code> you set the size of the assigned ID's kept
in memory for each <em>autoincrement</em> field. If the assigned ID's
are exhausted a database call is made to lookup the next bunch
- of ID's using the next database sequence (default <em>grabSize</em> is 20).
+ of ID's using the next database sequence (default <em>seq.grabSize</em> is 20).
<br/>
If OJB was shutdown/redeployed all unused assigned ID's are lost.
</p>
@@ -617,7 +689,7 @@
</note>
<p>
Attribute
- <a href="#auto-naming"><em>autoNaming</em></a>
+ <a href="#auto-naming"><em>seq.autoNaming</em></a>
is the same as for <a href="#database-sequences-based">SequenceManagerNextValImpl</a>.
</p>
<p>
@@ -626,7 +698,7 @@
to manage the sequences (see
<a href="#sequence-name">more</a>) or if not
set in <code>field-descriptor</code> it is done automatic when
- <a href="#auto-naming">autoNaming</a> is enabled.
+ <a href="#auto-naming">seq.autoNaming</a> is enabled.
</p>
<p>
Limitations:
@@ -661,14 +733,16 @@
work with database <em>Identity columns</em>.
</p>
<p>
- To enable this sequence manager implementation set in your
- <code>jdbc-connection-descriptor</code>:
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ element within the
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>identity</em>:
</p>
<source><![CDATA[
-<sequence-manager
- className="org.apache.ojb.broker.util.sequence.SequenceManagerNativeImpl">
-</sequence-manager>
- ]]></source>
+<!--<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerIdentityImpl"/>-->
+<sequence-manager className="identity"/>]]></source>
<p>
To declare the identity column in the persistent class mapping
<a href="site:repository/class-descriptor">class-descriptor</a>, add the
@@ -690,8 +764,7 @@
jdbc-type="BIGINT"
primarykey="true"
autoincrement="true"
- access="readonly"/>
- ]]></source>
+ access="readonly"/>]]></source>
<p>
Limitations:
<br/>- The Identity columns have to
@@ -722,23 +795,28 @@
<em>Oracle-style</em> for all databases (e.g. MSSQL, MySQL, DB2, ...).
</p>
<p>
- To declare this <em>sequence manager</em> implementation specify a
- <code>sequence-manager</code> element within the
- <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a>:
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ element within the
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>procedure</em>:
</p>
<source><![CDATA[
-<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerStoredProcedureImpl">
- <attribute attribute-name="autoNaming" attribute-value="true"/>
+<!--<sequence-manager
+className="org.apache.ojb.broker.util.sequence.SequenceManagerStoredProcedureImpl">-->
+<sequence-manager className="procedure">
+ <attribute attribute-name="seq.autoNaming" attribute-value="true"/>
</sequence-manager>]]></source>
<p>
- For attribute <a href="#auto-naming"><em>autoNaming</em> see</a>.
+ For attribute <a href="#auto-naming"><em>seq.autoNaming</em> see</a>.
</p>
<p>
This sequence manager implementation supports user defined
<a href="#sequence-name"><em>sequence-names</em></a>
to manage the sequences or if not
set in <code>field-descriptor</code> it is done automatic when
- <a href="#auto-naming">autoNaming</a> is enabled.
+ <a href="#auto-naming">seq.autoNaming</a> is enabled.
</p>
<ul>
<li>
@@ -764,6 +842,45 @@
<th>Stored Procedure</th>
</tr>
<tr>
+ <td>MySQL</td>
+ <td>
+ Create the table "OJB_NEXTVAL_SEQ":
+ <source><![CDATA[
+DROP TABLE IF EXISTS OJB_NEXTVAL_SEQ;
+CREATE TABLE OJB_NEXTVAL_SEQ
+(
+ SEQ_NAME VARCHAR(150) NOT NULL,
+ MAX_KEY INTEGER,
+ PRIMARY KEY(SEQ_NAME)
+);]]></source>
+ </td>
+ <td>
+ Create the procedure "ojb_nextval_proc"
+ (It does not work with a function):
+ <source><![CDATA[
+DROP PROCEDURE IF EXISTS OJB_NEXTVAL_PROC;
+
+delimiter //
+
+CREATE PROCEDURE ojb_nextval_proc(
+OUT MAX_KEY_PARAM INT,
+IN SEQ_NAME_PARAM VARCHAR(150))
+DETERMINISTIC
+BEGIN
+ UPDATE OJB_NEXTVAL_SEQ
+ SET MAX_KEY = MAX_KEY + 1
+ WHERE SEQ_NAME = SEQ_NAME_PARAM;
+
+ SELECT MAX_KEY INTO MAX_KEY_PARAM
+ FROM OJB_NEXTVAL_SEQ
+ WHERE SEQ_NAME = SEQ_NAME_PARAM;
+END;
+//
+
+delimiter ;]]></source>
+ </td>
+ </tr>
+ <tr>
<td>MSSQL</td>
<td>
<source><![CDATA[
@@ -801,8 +918,7 @@
else
select @MAX_KEY
-RETURN @MAX_KEY
- ]]></source>
+RETURN @MAX_KEY]]></source>
</td>
</tr>
<tr>
@@ -882,13 +998,17 @@
</p>
<p>
- You also need to turn on the SequenceManager in your
- jdbc-connection-descriptor like this:
+ To enable this <em>sequence manager</em> implementation specify a <code>sequence-manager</code>
+ element within the
+ <a href="site:repository/jdbc-connection-descriptor">jdbc-connection-descriptor</a> or
+ <a href="site:repository/field-descriptor">field-descriptor</a>
+ (<a href="#per-field-sequence">since OJB 1.0.5</a>) and specifiy
+ the <em>full class name</em> or the shortcut name (since OJB 1.0.5) <em>msguid</em>:
</p>
<source><![CDATA[
-<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerMSSQLGuidImpl"
-/>
- ]]></source>
+<!--<sequence-manager
+className="org.apache.ojb.broker.util.sequence.SequenceManagerMSSQLGuidImpl"/>-->
+<sequence-manager className="msguid"/>]]></source>
<p>
Limitations:
<br/>-This will only work with SQL Server 7.0 and higher as the
@@ -944,7 +1064,7 @@
</note>
<p>
If you don't specify a sequence name in the <em>field-descriptor</em> it is possible
- to auto-assign a sequence-name by OJB if <a href="#auto-naming">autoNaming</a>
+ to auto-assign a sequence-name by OJB if <a href="#auto-naming">seq.autoNaming</a>
is supported by the used sequence manager implementation.
</p>
@@ -952,17 +1072,17 @@
<anchor id="auto-naming"/>
<section>
- <title>The <em>autoNaming</em> property</title>
+ <title>The <em>seq.autoNaming</em> property</title>
<p>
All shipped <a href="ext:sequence-manager">SequenceManager</a> implementations
using <em>sequences</em> for ID generation support a property
- called <em>autoNaming</em> which can be declared as a
+ called <em>seq.autoNaming</em> which can be declared as a
<a href="site:repository/custom-attribute"><em>custom attribute</em></a>
within the <em>sequence-manager</em> element:
</p>
<source><![CDATA[
<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
-<attribute attribute-name="autoNaming" attribute-value="true"/>
+<attribute attribute-name="seq.autoNaming" attribute-value="true"/>
</sequence-manager>]]></source>
<p>
If set <em>true</em> OJB try to build a
@@ -979,7 +1099,7 @@
<em>field-descriptor</em> of the autoincrement field.
In this case OJB expects a valid <em>sequence-name</em> in the <em>field-descriptor</em>.
<br/>
- If the attribute <code>autoNaming</code> is set <em>false</em> the sequence manager
+ If the attribute <code>seq.autoNaming</code> is set <em>false</em> the sequence manager
never try to auto-generate a <em>sequence-name</em> (more detailed info
<a href="#no-auto-build">here</a>). If set <em>true</em> and a <em>sequence-name</em>
is set in the <em>field-descriptor</em>, the <em>SequenceManager</em> will use this one and
@@ -1114,12 +1234,12 @@
<p>
All shipped
<code>SequenceManager</code> implementations which using sequence names
- for UID generation, support by default auto-build (autoNaming) of the sequence name
+ for UID generation, support by default auto-build (seq.autoNaming) of the sequence name
if none was found in the
<code>field-descriptor</code>.
<br/>
To prevent this, all relevant SM implementations support a
- <code>autoNaming</code>
+ <code>seq.autoNaming</code>
property - set via
<code>attribute</code> element. If set
<code>false</code> OJB doesn't
@@ -1127,7 +1247,7 @@
</p>
<source><![CDATA[
<sequence-manager className="org.apache.ojb.broker.util.sequence.SequenceManagerNextValImpl">
- <attribute attribute-name="autoNaming" attribute-value="false"/>
+ <attribute attribute-name="seq.autoNaming" attribute-value="false"/>
</sequence-manager>]]></source>
<p>
Keep in mind that user defined sequence names have to be
@@ -1195,7 +1315,7 @@
<li>
When using <em>sequences</em> based sequence manager implementations it's possible
to enable auto-generation of <em>sequence names</em> - see
- <a href="#auto-naming">autoNaming section</a>.
+ <a href="#auto-naming">auto naming section</a>.
To build the <em>sequence name</em> an simple algorithm was used.
<br/>
<br/>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org