Need help with jpa-entity-generator?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

smartnews
159 Stars 53 Forks MIT License 68 Commits 10 Opened issues

Description

Lombok-wired JPA entity source code generator, Gradle and Maven supported.

Services available

!
?

Need anything else?

Contributors list

jpa-entity-generator

Build Status Maven Central

This is a Java library which generates Lombok-wired JPA entity source code. The project provides Gradle plugin and Maven plugin.

Getting Started

build.gradle

apply plugin: 'java'

buildscript { dependencies { classpath 'com.h2database:h2:1.4.197' classpath 'com.smartnews:jpa-entity-generator:0.99.8' } }

configurations { providedCompile } sourceSets.main.compileClasspath += configurations.providedCompile sourceSets.test.compileClasspath += configurations.providedCompile sourceSets.test.runtimeClasspath += configurations.providedCompile

repositories { mavenCentral() } dependencies { providedCompile 'org.projectlombok:lombok:1.18.2' providedCompile 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final' }

apply plugin: 'entitygen' entityGen { configPath = 'src/main/resources/entityGenConfig.yml' }

For Maven users

Maven plugin to run the code generator is also available.

  com.smartnews
  maven-jpa-entity-generator-plugin
  0.99.8
  
    
      mysql
      mysql-connector-java
      5.1.46
    
  

Put

src/main/resources/entityGenConfig.yml
, and then run the following command:
mvn jpa-entity-generator:generateAll

src/main/resources/entityGenConfig.yml

jdbcSettings:
  url: "jdbc:h2:file:./db/blog;MODE=MySQL"
  username: "user"
  password: "pass"
  driverClassName: "org.h2.Driver"

packageName: "com.example.entity"

If you need more examples, check the sample

entityGenConfig.yml
in this repository.
  • https://github.com/smartnews/jpa-entity-generator/tree/master/src/test/resources/entityGenConfig.yml

entityGen task

./gradlew entityGen compileJava

entityGen
task generates entity classes for all the existing tables in the database.
package com.example.entity;

import java.sql.; import javax.persistence.; import lombok.Data;

@Data @Entity(name = "com.example.entity.Blog") @Table(name = "blog") public class Blog {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = ""id"") private Integer id; @Column(name = ""name"") private String name; @Column(name = ""active"") private Byte active; @Column(name = ""created_at"") private Timestamp createdAt; }

How to test on your local machine

To run the unit tests, simply run the following script as the TravisCI build does.

./test.sh

If you need to make sure if your latest code works with sample project or your existing projects, run the following command to publish the latest build to the local Maven repository.

./gradlew uploadArchives -Plocal

How to release new version

./gradlew clean uploadArchives
mvn deploy -Dmaven.test.skip=true

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.