added jpa entity generator

master
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.dir = model.package.replace(/\./g, '/')
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.name = utils.camelcase(field.name)
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.nullable = !field.required
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
})

View File

@ -11,6 +11,10 @@
package {{package}};
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;
{{#imports}}
import {{{.}}};
@ -34,12 +38,13 @@ import {{{.}}};
public class {{name}} {
{{#fields}}
{{#description}}/** {{.}} **/{{/description}}
{{#isPkey}}
{{#description}}/** {{.}} **/{{/description}}{{#isPkey}}
@Id{{/isPkey}}{{#type.isCollection}}
@OneToMany{{/type.isCollection}}
@Column(nullable = {{nullable}}){{#isEnum}}
@Enumerated(EnumType.STRING){{/isEnum}}
@Column(nullable = {{nullable}}, unique = {{unique}}){{#isEnum}}
@Enumerated(EnumType.STRING){{/isEnum}}{{#updateTimestamp}}
@UpdateTimestamp{{/updateTimestamp}}{{#creationTimestamp}}
@CreationTimestamp{{/creationTimestamp}}
private {{{type.name}}} {{name}};
{{/fields}}