Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !5312

[RESOLVE] Added Spring JPA annotations support to SpringCodegen

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Administrator requested to merge github/fork/MarkusBansky/add_feature_2972 into master Feb 13, 2020
  • Overview 0
  • Commits 5
  • Pipelines 1
  • Changes 508

Created by: MarkusBansky

REQUEST #2972 (closed)

Added Spring JPA annotations support to SpringCodegen.

Added additionalAnnotations to CodegenModel, CodegenProperty. Added isJpaEntity to CodegenModel. Added useSpringJpa config option to SpringCodegen.

Example:

User:
  type: object
  x-java-jpa-entity: true
  x-java-jpa-table: users
  properties:
    id:
      type: integer
      format: int64
      x-java-jpa-annotations:
        - "@Id"
        - "@GeneratedValue(strategy = GenerationType.IDENTITY)"
    firstName:
      type: string
    lastName:
      type: string
    username:
      type: string
    passwordHash:
      type: string

Would generate this class for you:

/**
 * User
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2020-02-13T21:44:31.102132Z[Europe/London]")

@Entity // <---- makes this an Entity
@Table(name = "users") // <---- applies table name
public class User   {

  @Id // <---- adds annotations
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @JsonProperty("id")
  private Long id;


  @JsonProperty("firstName")
  private String firstName;


  @JsonProperty("lastName")
  private String lastName;


  @JsonProperty("username")
  private String username;


  @JsonProperty("passwordHash")
  private String passwordHash;

  public User id(Long id) {
    this.id = id;
    return this;
  }

  /**
   * Get id
   * @return id
  */
  @ApiModelProperty(value = "")


  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

/// the rest of the file there

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

@bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @bkabrda (2020/01)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/MarkusBansky/add_feature_2972