package org.hibernate.orm.test.query.hhh15917;
import java.util.Set;
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
import org.hibernate.testing.orm.junit.JiraKey;
import org.junit.Test;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
@JiraKey("HHH-15917")
public class HHH15917Test
extends BaseCoreFunctionalTestCase {
@Override
protected Class<?>[] getAnnotatedClasses() {
return new Class<?>[] { ClassA.class, ClassB.class };
}
@Test
public void testNoExceptionThrown() {
doInHibernate(this::sessionFactory, s -> {
s.createQuery("SELECT 'foobar' FROM ClassA a JOIN a.names aName JOIN ClassB b ON b.name = aName", Object[].class)
.getResultList();
});
}
@Entity(name = "ClassA")
private static class ClassA {
@Id
@GeneratedValue
private Long id;
private String name;
@ElementCollection
private Set<String> names;
}
@Entity(name = "ClassB")
private static class ClassB {
@Id
@GeneratedValue
private Long id;
private String name;
}
}