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 }