added jpa entity generator

master
Niclas Thobaben 2021-09-18 15:59:27 +02:00
parent 61758effd1
commit 22f9b254ce
2 changed files with 30 additions and 10 deletions

View File

@ -8,10 +8,14 @@ module.exports = {
let jpa = model.attributes.find(attr => attr.name == 'jpa_sql').value;
model.name = `${utils.pascalcase(model.name)}Record`
model.package = `${namespace}.${suffix}`;
model.dir = model.package.replace(/\./g, '/')
model.fields = model.fields.map(field => {
let entity = { ...model }
entity.modelType = `${utils.pascalcase(model.name)}`
entity.modelName = model.name
entity.name = `${utils.pascalcase(model.name)}Record`
entity.package = `${namespace}.${suffix}`;
entity.dir = model.package.replace(/\./g, '/')
entity.fields = model.fields.map(field => {
let field_attr = field.attributes.find(attr => attr.name == 'jpa_sql')
field_attr = field_attr || {}
@ -22,7 +26,8 @@ module.exports = {
if(field.type.fullQualifiedName && field.type.fullQualifiedName.includes('models') && !field.isEnum) {
field.type.fullQualifiedName = field.type.fullQualifiedName.replace('models', suffix)
field.type.imports = field.type.imports.filter(i => !i.includes('models'))
//field.type.imports = field.type.imports.filter(i => !i.includes('models'))
field.isRecord = true
}
field.default = javaType.mapDefaultValue(field.type, field.default)
@ -41,17 +46,17 @@ module.exports = {
for(let field of model.fields) {
imports = [ ...imports, ...field.type.imports ]
}
model.imports = [ ...new Set(imports) ]
model.implements = model.implements || []
entity.imports = [ ...new Set(imports) ]
entity.implements = model.implements || []
if(model.implements.length) {
model['implements'][ model['implements'].length - 1 ].last = true
}
model.table = jpa.table || model.plural
model.indexes = jpa.indexes
entity.table = jpa.table || model.plural
entity.indexes = jpa.indexes
return model
return entity
})
},
mapJavaJpaRepository: (service, models, namespace, suffix='db') => {

View File

@ -52,5 +52,20 @@ public class {{name}} {
{{/fields}}
public {{modelType}} toModel() {
{{modelType}} {{modelName}} = new {{modelName}}();
{{#fields}}
{{#isRecord}}
{{modelName}}.set{{name}}(this.{{name}} != null ? this.{{name}}.toModel() : null);
{{/isRecord}}
{{^isRecord}}
{{modelName}}.set{{name}}(this.{{name}});
{{/isRecord}}
{{/fields}}
return {{modelName}};
}
}