added jpa entity generator

This commit is contained in:
Niclas Thobaben 2021-09-18 14:49:48 +02:00
parent 5e3343e200
commit ba746b8a41
2 changed files with 17 additions and 5 deletions

View file

@ -11,6 +11,10 @@ module.exports = {
model.package = `${namespace}.${suffix}`; model.package = `${namespace}.${suffix}`;
model.dir = model.package.replace(/\./g, '/') model.dir = model.package.replace(/\./g, '/')
model.fields = model.fields.map(field => { model.fields = model.fields.map(field => {
let field_attr = field.attributes.find(attr => attr.name == 'jpa_sql')
field_attr = field_attr || {}
field.isEnum = service.enums.find(e => e.name == field.type) != null field.isEnum = service.enums.find(e => e.name == field.type) != null
field.name = utils.camelcase(field.name) field.name = utils.camelcase(field.name)
field.type = javaType.mapJavaType(field.type, namespace, field.isEnum ? '' : 'Record') field.type = javaType.mapJavaType(field.type, namespace, field.isEnum ? '' : 'Record')
@ -23,8 +27,11 @@ module.exports = {
field.default = javaType.mapDefaultValue(field.type, field.default) field.default = javaType.mapDefaultValue(field.type, field.default)
field.nullable = !field.required field.nullable = !field.required
field.isPkey = jpa.pkey == field.name field.isPkey = jpa.pkey == field.name
field.unique = field.attr.unique
field.creationTimestamp = field_attr.timestamp == 'create'
field.updateTimestamp = field_attr.timestamp == 'update'
console.log("field", field)
return field return field
}) })

View file

@ -11,6 +11,10 @@
package {{package}}; package {{package}};
import javax.persistence.*; import javax.persistence.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.UpdateTimestamp;
import lombok.Data; import lombok.Data;
{{#imports}} {{#imports}}
import {{{.}}}; import {{{.}}};
@ -34,12 +38,13 @@ import {{{.}}};
public class {{name}} { public class {{name}} {
{{#fields}} {{#fields}}
{{#description}}/** {{.}} **/{{/description}} {{#description}}/** {{.}} **/{{/description}}{{#isPkey}}
{{#isPkey}}
@Id{{/isPkey}}{{#type.isCollection}} @Id{{/isPkey}}{{#type.isCollection}}
@OneToMany{{/type.isCollection}} @OneToMany{{/type.isCollection}}
@Column(nullable = {{nullable}}){{#isEnum}} @Column(nullable = {{nullable}}, unique = {{unique}}){{#isEnum}}
@Enumerated(EnumType.STRING){{/isEnum}} @Enumerated(EnumType.STRING){{/isEnum}}{{#updateTimestamp}}
@UpdateTimestamp{{/updateTimestamp}}{{#creationTimestamp}}
@CreationTimestamp{{/creationTimestamp}}
private {{{type.name}}} {{name}}; private {{{type.name}}} {{name}};
{{/fields}} {{/fields}}