Skip to content

Commit

Permalink
Test for quarkusio#8932 Hibernate Lazy load issue
Browse files Browse the repository at this point in the history
  • Loading branch information
dreab8 committed May 15, 2020
1 parent 091a47f commit a00b894
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.acme.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

@Entity(name = "content")
@Inheritance(strategy = InheritanceType.JOINED)
public class Content extends EntityBase {
@Column(nullable = false)
public String name;

// public String getName() {
// return name;
// }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.acme.entities;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

import io.quarkus.hibernate.orm.panache.PanacheEntityBase;

@MappedSuperclass
public abstract class EntityBase extends PanacheEntityBase {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.acme.entities;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;

@Entity(name = "folder")
public class Folder extends EntityBase {
@ManyToOne(fetch = FetchType.LAZY, optional = false)
public Content content;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.acme;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.hibernate.bytecode.enhance.spi.interceptor.EnhancementAsProxyLazinessInterceptor;
import org.hibernate.engine.spi.PersistentAttributeInterceptable;

import org.acme.entities.Content;
import org.acme.entities.Folder;

@Path("/folder")
public class FolderEndPoint {

@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
Folder f = Folder.findById(1L);
Content content = f.content;
final PersistentAttributeInterceptable interceptable = (PersistentAttributeInterceptable) content;
final EnhancementAsProxyLazinessInterceptor interceptor = (EnhancementAsProxyLazinessInterceptor) interceptable.$$_hibernate_getInterceptor();
return "name: " + content.name;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package org.acme.entities;

import javax.persistence.Column;
import javax.persistence.Entity;

@Entity(name = "video")
public class Video extends Content {
@Column(nullable = false)
public long length;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
insert into content values (1, 'it is working!');
insert into folder values (1, 1);
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package io.quarkus.it.panache;

import org.junit.jupiter.api.Test;

import io.quarkus.test.junit.QuarkusTest;

import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;

@QuarkusTest
public class HibernateProxyFieldAccessTest {

@Test
public void testHelloEndpoint() {
given()
.when().get("/folder")
.then()
.statusCode(200)
.body(is("name: it is working!"));
}
}

0 comments on commit a00b894

Please sign in to comment.