Skip to content

Commit

Permalink
Add an Hibernate ORM codestart
Browse files Browse the repository at this point in the history
  • Loading branch information
loicmathieu committed Nov 5, 2021
1 parent 879c4fb commit 9e88c4f
Show file tree
Hide file tree
Showing 9 changed files with 151 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{#include readme-header /}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
quarkus:
hibernate-orm:
database:
generation: drop-and-create
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- This file allow to write SQL commands that will be emitted in test and dev.
-- The commands are commented as their support depends of the database
-- insert into myentity (id, field) values(nextval('hibernate_sequence'), 'field-1');
-- insert into myentity (id, field) values(nextval('hibernate_sequence'), 'field-2');
-- insert into myentity (id, field) values(nextval('hibernate_sequence'), 'field-3');
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: hibernate-orm-codestart
ref: hibernate-orm
tags: extension-codestart
type: code
metadata:
title: Hibernate ORM
description: Create your first JPA entity
related-guide-section: https://quarkus.io/guides/hibernate-orm
language:
base:
dependencies:
- io.quarkus:quarkus-hibernate-orm
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package org.acme;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
* Example JPA entity.
*
* To use it, get access to a JPA EntityManager via injection.
*
* {@code
* @Inject
* EntityManager em;
*
* public void doSomething() {
* MyEntity entity1 = new MyEntity();
* entity1.setField("field-1");
* em.persist(entity1);
*
* List<MyEntity> entities = em.createQuery("from MyEntity", MyEntity.class).getResultList();
* }
* }
*/
@Entity
public class MyEntity {
private Long id;
private String field;

@Id
@GeneratedValue
public Long getId() {
return id;
}

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

public String getField() {
return field;
}

public void setField(String field) {
this.field = field;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,7 @@ metadata:
config:
- "quarkus.datasource."
- "quarkus.hibernate-orm."
codestart:
name: "hibernate-orm"
languages: "java"
artifact: "io.quarkus:quarkus-project-core-extension-codestarts"
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package io.quarkus.devtools.codestarts.quarkus;

import static io.quarkus.devtools.codestarts.quarkus.QuarkusCodestartCatalog.Language.JAVA;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.devtools.testing.codestarts.QuarkusCodestartTest;
import io.quarkus.maven.ArtifactKey;

public class HibernateOrmCodestartTest {

@RegisterExtension
public static QuarkusCodestartTest codestartTest = QuarkusCodestartTest.builder()
.codestarts("hibernate-orm")
.extension(new ArtifactKey("io.quarkus", "quarkus-jdbc-h2"))
.languages(JAVA)
.build();

@Test
void testContent() throws Throwable {
codestartTest.checkGeneratedSource("org.acme.MyEntity");
}

@Test
void buildAllProjectsForLocalUse() throws Throwable {
codestartTest.buildAllProjects();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ class QuarkusCodestartBuildIT extends PlatformAwareTestBase {

private static final Path testDirPath = Paths.get("target/quarkus-codestart-build-test");

private static final Set<String> EXCLUDED = Sets.newHashSet("spring-web-codestart", "picocli-codestart");
private static final Set<String> EXCLUDED = Sets.newHashSet("spring-web-codestart", "picocli-codestart",
"hibernate-orm-codestart");

@BeforeAll
static void setUp() throws IOException {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package ilove.quark.us;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
* Example JPA entity.
*
* To use it, get access to a JPA EntityManager via injection.
*
* {@code
* @Inject
* EntityManager em;
*
* public void doSomething() {
* MyEntity entity1 = new MyEntity();
* entity1.setField("field-1");
* em.persist(entity1);
*
* List<MyEntity> entities = em.createQuery("from MyEntity", MyEntity.class).getResultList();
* }
* }
*/
@Entity
public class MyEntity {
private Long id;
private String field;

@Id
@GeneratedValue
public Long getId() {
return id;
}

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

public String getField() {
return field;
}

public void setField(String field) {
this.field = field;
}
}

0 comments on commit 9e88c4f

Please sign in to comment.