*/
public class JavaxPersistenceImpl implements JavaxPersistenceConfigurer {
public DatabaseFieldConfig createFieldConfig(DatabaseType databaseType, Field field) {
Column columnAnnotation = field.getAnnotation(Column.class);
Basic basicAnnotation = field.getAnnotation(Basic.class);
Id idAnnotation = field.getAnnotation(Id.class);
GeneratedValue generatedValueAnnotation = field.getAnnotation(GeneratedValue.class);
OneToOne oneToOneAnnotation = field.getAnnotation(OneToOne.class);
ManyToOne manyToOneAnnotation = field.getAnnotation(ManyToOne.class);
JoinColumn joinColumnAnnotation = field.getAnnotation(JoinColumn.class);
Enumerated enumeratedAnnotation = field.getAnnotation(Enumerated.class);
Version versionAnnotation = field.getAnnotation(Version.class);
if (columnAnnotation == null && basicAnnotation == null && idAnnotation == null && oneToOneAnnotation == null
&& manyToOneAnnotation == null && enumeratedAnnotation == null && versionAnnotation == null) {
return null;
}
DatabaseFieldConfig config = new DatabaseFieldConfig();
String fieldName = field.getName();
if (databaseType.isEntityNamesMustBeUpCase()) {
fieldName = fieldName.toUpperCase();
}
config.setFieldName(fieldName);
if (columnAnnotation != null) {
if (stringNotEmpty(columnAnnotation.name())) {
config.setColumnName(columnAnnotation.name());
}
if (stringNotEmpty(columnAnnotation.columnDefinition())) {
config.setColumnDefinition(columnAnnotation.columnDefinition());
}
config.setWidth(columnAnnotation.length());
config.setCanBeNull(columnAnnotation.nullable());
config.setUnique(columnAnnotation.unique());
}
if (basicAnnotation != null) {
config.setCanBeNull(basicAnnotation.optional());
}
if (idAnnotation != null) {
if (generatedValueAnnotation == null) {
config.setId(true);
} else {