From be4fc59c5649d0684312bab9d9b70b4a1476f292 Mon Sep 17 00:00:00 2001 From: Niclas Thobaben Date: Sat, 18 Sep 2021 14:09:36 +0200 Subject: [PATCH] added jpa entity generator --- src/java-jpa-entity.js | 6 ++++++ src/java-type.js | 4 +++- templates/jpa-entity.java.mustache | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/java-jpa-entity.js b/src/java-jpa-entity.js index ece895b..fc82cc3 100644 --- a/src/java-jpa-entity.js +++ b/src/java-jpa-entity.js @@ -13,6 +13,12 @@ module.exports = { model.fields = model.fields.map(field => { field.name = utils.camelcase(field.name) field.type = javaType.mapJavaType(field.type, namespace) + + if(field.type.fullQualifiedName.includes('model')) { + field.type.fullQualifiedName = field.type.fullQualifiedName.replace('model', 'db') + 'Entity' + field.type.name = field.type.name + "Entity"; + } + field.default = javaType.mapDefaultValue(field.type, field.default) field.nullable = !field.required field.isPkey = jpa.pkey == field.name diff --git a/src/java-type.js b/src/java-type.js index bfa2019..7545802 100644 --- a/src/java-type.js +++ b/src/java-type.js @@ -54,9 +54,9 @@ function getCustomType(type, namespace) { let match = LAST_ELEMENT_REGEX.exec(type) let name = '' let importstatement = null + let isEnum = name.includes('enum') if(match) { name = utils.pascalcase(match[2]) - importstatement = `${match[1].replace('enums', 'models')}.${name}` }else { name = utils.pascalcase(type) @@ -66,6 +66,8 @@ function getCustomType(type, namespace) { return { name, baseType: name, + fullQualifiedName: importstatement, + isEnum, imports: [ importstatement ] } } diff --git a/templates/jpa-entity.java.mustache b/templates/jpa-entity.java.mustache index 8ffa56d..796e9b2 100644 --- a/templates/jpa-entity.java.mustache +++ b/templates/jpa-entity.java.mustache @@ -38,7 +38,8 @@ public class {{name}} { {{#isPkey}} @Id{{/isPkey}}{{#isCollection}} @OneToMany{{/isCollection}} - @Column(nullable = {{nullable}}) + @Column(nullable = {{nullable}}){{#isEnum}} + @Enumerated(EnumType.STRING){{/isEnum}} private {{{type.name}}} {{name}}; {{/fields}}