diff --git a/src/generators/java-jpa-entities.generator.js b/src/generators/java-jpa-entities.generator.js index 70abbb1..ea13864 100644 --- a/src/generators/java-jpa-entities.generator.js +++ b/src/generators/java-jpa-entities.generator.js @@ -10,7 +10,7 @@ module.exports = (service) => { const jpaModels = service.models.filter(model => model.attributes.find(attr => attr.name == 'jpa_sql')) - const models = jpaEntites.mapJavaJpaEntity(jpaModels, service.namespace) + const models = jpaEntites.mapJavaJpaEntity(service, jpaModels, service.namespace) return models.map(model => { return { diff --git a/src/java-jpa-entity.js b/src/java-jpa-entity.js index 3b23aa2..078364a 100644 --- a/src/java-jpa-entity.js +++ b/src/java-jpa-entity.js @@ -2,20 +2,22 @@ const utils = require('./utils') const javaType = require('./java-type') module.exports = { - mapJavaJpaEntity: (models, namespace, suffix='db') => { + mapJavaJpaEntity: (service, models, namespace, suffix='db') => { return models.map(model => { let jpa = model.attributes.find(attr => attr.name == 'jpa_sql').value; - model.name = `${utils.pascalcase(model.name)}` + model.name = `${utils.pascalcase(model.name)}Record` model.package = `${namespace}.${suffix}`; model.dir = model.package.replace(/\./g, '/') model.fields = model.fields.map(field => { + field.isEnum = service.enums.find(e => e.name == field.type.name) field.name = utils.camelcase(field.name) - field.type = javaType.mapJavaType(field.type, namespace, 'Entity') + field.type = javaType.mapJavaType(field.type, namespace, 'Record') + + if(field.type.fullQualifiedName && field.type.fullQualifiedName.includes('models') && !field.isEnum) { + field.type.fullQualifiedName = field.type.fullQualifiedName.replace('models', 'db') - if(field.type.fullQualifiedName && field.type.fullQualifiedName.includes('models')) { - field.type.fullQualifiedName = field.type.fullQualifiedName.replaceAll('models', 'db') } field.default = javaType.mapDefaultValue(field.type, field.default)