Search in sources :

Example 11 with Id

use of javax.persistence.Id in project cloudstack by apache.

the class Attribute method setupColumnInfo.

protected void setupColumnInfo(Class<?> clazz, AttributeOverride[] overrides, String tableName, boolean isEmbedded, boolean isId) {
    flags = Flag.Selectable.setTrue(flags);
    GeneratedValue gv = field.getAnnotation(GeneratedValue.class);
    if (gv != null) {
        if (gv.strategy() == GenerationType.IDENTITY) {
            flags = Flag.DbGenerated.setTrue(flags);
        } else if (gv.strategy() == GenerationType.SEQUENCE) {
            assert (false) : "Sequence generation not supported.";
            flags = Flag.DaoGenerated.setTrue(flags);
            flags = Flag.Insertable.setTrue(flags);
            flags = Flag.SequenceGV.setTrue(flags);
        } else if (gv.strategy() == GenerationType.TABLE) {
            flags = Flag.DaoGenerated.setTrue(flags);
            flags = Flag.Insertable.setTrue(flags);
            flags = Flag.TableGV.setTrue(flags);
        } else if (gv.strategy() == GenerationType.AUTO) {
            flags = Flag.DaoGenerated.setTrue(flags);
            flags = Flag.Insertable.setTrue(flags);
            flags = Flag.AutoGV.setTrue(flags);
        }
    }
    if (isEmbedded) {
        flags = Flag.Embedded.setTrue(flags);
    }
    if (isId) {
        flags = Flag.Id.setTrue(flags);
    } else {
        Id id = field.getAnnotation(Id.class);
        if (id != null) {
            flags = Flag.Id.setTrue(flags);
        }
    }
    column = field.getAnnotation(Column.class);
    if (gv == null) {
        if (column == null || (column.insertable() && column.table().length() == 0)) {
            flags = Flag.Insertable.setTrue(flags);
        }
        if (column == null || (column.updatable() && column.table().length() == 0)) {
            flags = Flag.Updatable.setTrue(flags);
        }
        if (column == null || column.nullable()) {
            flags = Flag.Nullable.setTrue(flags);
        }
        Encrypt encrypt = field.getAnnotation(Encrypt.class);
        if (encrypt != null && encrypt.encrypt()) {
            flags = Flag.Encrypted.setTrue(flags);
        }
    }
    ElementCollection ec = field.getAnnotation(ElementCollection.class);
    if (ec != null) {
        flags = Flag.Insertable.setFalse(flags);
        flags = Flag.Selectable.setFalse(flags);
    }
    Temporal temporal = field.getAnnotation(Temporal.class);
    if (temporal != null) {
        if (temporal.value() == TemporalType.DATE) {
            flags = Flag.Date.setTrue(flags);
        } else if (temporal.value() == TemporalType.TIME) {
            flags = Flag.Time.setTrue(flags);
        } else if (temporal.value() == TemporalType.TIMESTAMP) {
            flags = Flag.TimeStamp.setTrue(flags);
        }
    }
    if (column != null && column.table().length() > 0) {
        table = column.table();
    }
    columnName = DbUtil.getColumnName(field, overrides);
}
Also used : GeneratedValue(javax.persistence.GeneratedValue) Temporal(javax.persistence.Temporal) Column(javax.persistence.Column) Id(javax.persistence.Id) ElementCollection(javax.persistence.ElementCollection)

Example 12 with Id

use of javax.persistence.Id in project bamboobsc by billchen198318.

the class SqlGenerateUtil method getPKvalue.

private static Object getPKvalue(Object entityObject) {
    Method[] methods = entityObject.getClass().getMethods();
    if (methods == null) {
        return null;
    }
    Object value = null;
    for (int ix = 0; ix < methods.length && value == null; ix++) {
        Annotation[] annotations = methods[ix].getDeclaredAnnotations();
        if (annotations == null) {
            continue;
        }
        for (Annotation annotation : annotations) {
            if (annotation instanceof Id) {
                if (methods[ix].getName().indexOf("get") == 0) {
                    try {
                        value = methods[ix].invoke(entityObject);
                    } catch (IllegalArgumentException e) {
                        e.printStackTrace();
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    } catch (InvocationTargetException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    return value;
}
Also used : Method(java.lang.reflect.Method) Id(javax.persistence.Id) Annotation(java.lang.annotation.Annotation) InvocationTargetException(java.lang.reflect.InvocationTargetException)

Aggregations

Id (javax.persistence.Id)12 Column (javax.persistence.Column)8 Method (java.lang.reflect.Method)5 Field (java.lang.reflect.Field)4 EmbeddedId (javax.persistence.EmbeddedId)4 GeneratedValue (javax.persistence.GeneratedValue)4 JoinColumn (javax.persistence.JoinColumn)4 ManyToOne (javax.persistence.ManyToOne)4 DiscriminatorColumn (javax.persistence.DiscriminatorColumn)3 ElementCollection (javax.persistence.ElementCollection)3 JoinColumns (javax.persistence.JoinColumns)3 OneToOne (javax.persistence.OneToOne)3 PrimaryKeyJoinColumn (javax.persistence.PrimaryKeyJoinColumn)3 PrimaryKeyJoinColumns (javax.persistence.PrimaryKeyJoinColumns)3 Temporal (javax.persistence.Temporal)3 ArrayList (java.util.ArrayList)2 ManyToMany (javax.persistence.ManyToMany)2 MapKeyColumn (javax.persistence.MapKeyColumn)2 MapKeyJoinColumn (javax.persistence.MapKeyJoinColumn)2 MapKeyJoinColumns (javax.persistence.MapKeyJoinColumns)2