View Javadoc

1   /*
2    * Copyright 2007-2008 The Kuali Foundation
3    * 
4    * Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in
5    * compliance with the License. You may obtain a copy of the License at
6    * 
7    * http://www.opensource.org/licenses/ecl2.php
8    * 
9    * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS
10   * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
11   * language governing permissions and limitations under the License.
12   */
13  package org.kuali.rice.core.jpa.annotations;
14  
15  import java.lang.annotation.Documented;
16  import java.lang.annotation.ElementType;
17  import java.lang.annotation.Inherited;
18  import java.lang.annotation.Retention;
19  import java.lang.annotation.RetentionPolicy;
20  import java.lang.annotation.Target;
21  
22  /**
23   * Annotation for mimicing auto-incrementing fields.  Currently, only one auto-
24   * incrementing field is allowed per entity, but could be modified in the future
25   * if required (just add a @Sequences annotation that help an array of @Sequence
26   * annotations). This is used in conjunction with the Kuali sequence managers rather
27   * than the standard JPA generated value annotations. The reason is that Kuali 
28   * uses a sequence like algorithm for all supported databases (mysql, oracle) 
29   * rather than identity or auto-incrementing fields.
30   * 
31   * @author Kuali Rice Team (rice.collab@kuali.org)
32   */
33  @Documented
34  @Target({ElementType.TYPE})
35  @Retention(RetentionPolicy.RUNTIME)
36  @Inherited
37  public @interface Sequence {
38  	String name();
39  	String property();
40  }