View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2006 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  package ch.elca.el4j.services.persistence.hibernate.dialect;
18  
19  import org.hibernate.dialect.DerbyDialect;
20  import org.hibernate.id.IdentityGenerator;
21  import org.hibernate.id.SequenceGenerator;
22  import org.hibernate.id.TableHiLoGenerator;
23  
24  /**
25   * Temporary fix to re-enable flexible native key generation. Safety of this
26   * fix is currently beeing determined.
27   *
28   *
29   * @svnLink $Revision: 3882 $;$Date: 2009-08-04 15:24:14 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/hibernate/src/main/java/ch/elca/el4j/services/persistence/hibernate/dialect/PatchedDerbyDialect.java $
30   *
31   * @author Adrian Moos (AMS)
32   */
33  // TODO: verify safety of identity and sequence generation strategy.
34  // mail to hibernate mailing list currently pending.
35  //
36  // see http://opensource.atlassian.com/projects/hibernate/browse/HHH-1918
37  // and http://opensource.atlassian.com/projects/hibernate/browse/HHH-2347
38  public class PatchedDerbyDialect extends DerbyDialect {
39  
40  	/** {@inheritDoc} */
41  	@Override
42  	public Class getNativeIdentifierGeneratorClass() {
43  		if (supportsIdentityColumns()) {
44  			return IdentityGenerator.class;
45  		} else if (supportsSequences()) {
46  			return SequenceGenerator.class;
47  		} else {
48  			return TableHiLoGenerator.class;
49  		}
50  	}
51  	
52  }