HHH-10223: Element 'query-param' in *.hbm.xml files causes ClassCastException
This commit is contained in:
parent
0638a5449c
commit
71765d7bd2
|
@ -45,10 +45,14 @@ public class NamedQueryBinder {
|
||||||
|
|
||||||
for ( Object content : namedQueryBinding.getContent() ) {
|
for ( Object content : namedQueryBinding.getContent() ) {
|
||||||
if ( String.class.isInstance( content ) ) {
|
if ( String.class.isInstance( content ) ) {
|
||||||
query = (String) content;
|
String trimmed = ((String)content).trim();
|
||||||
|
if (!"".equals(trimmed)) {
|
||||||
|
query = trimmed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
final JaxbHbmQueryParamType paramTypeBinding = (JaxbHbmQueryParamType) content;
|
final JaxbHbmQueryParamType paramTypeBinding =
|
||||||
|
(JaxbHbmQueryParamType)((JAXBElement)content).getValue();
|
||||||
if ( parameterTypeMap == null ) {
|
if ( parameterTypeMap == null ) {
|
||||||
parameterTypeMap = new HashMap<String,String>();
|
parameterTypeMap = new HashMap<String,String>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package org.hibernate.test.hbm.query;
|
||||||
|
|
||||||
|
import java.io.StringReader;
|
||||||
|
|
||||||
|
import org.hibernate.cfg.Configuration;
|
||||||
|
import org.hibernate.engine.jdbc.ReaderInputStream;
|
||||||
|
import org.hibernate.testing.TestForIssue;
|
||||||
|
import org.hibernate.testing.junit4.BaseUnitTestCase;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Koen Aers
|
||||||
|
*/
|
||||||
|
@TestForIssue( jiraKey = "HHH-10223" )
|
||||||
|
public class NamedQueryTest extends BaseUnitTestCase {
|
||||||
|
|
||||||
|
private static String NAMED_QUERY_HBM_XML =
|
||||||
|
"<hibernate-mapping package='org.hibernate.test.hbm.query'> "+
|
||||||
|
" <class name='NamedQueryTest$Bar'> "+
|
||||||
|
" <id name='id'> "+
|
||||||
|
" <generator class='sequence'/> "+
|
||||||
|
" </id> "+
|
||||||
|
" <query name='findByFoo'> "+
|
||||||
|
" <query-param name='foo' type='string'/> "+
|
||||||
|
" from NamedQueryTest$Bar where foo like :foo "+
|
||||||
|
" </query> "+
|
||||||
|
" </class> "+
|
||||||
|
"</hibernate-mapping> ";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testQuery() {
|
||||||
|
Configuration cfg = new Configuration();
|
||||||
|
cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
|
||||||
|
cfg.addInputStream(new ReaderInputStream(new StringReader(NAMED_QUERY_HBM_XML)));
|
||||||
|
cfg.buildSessionFactory();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Bar {
|
||||||
|
private Integer id;
|
||||||
|
private String foo;
|
||||||
|
public Integer getId() { return id; }
|
||||||
|
public void setId(Integer id) { this.id = id; }
|
||||||
|
public String getFoo() { return foo; }
|
||||||
|
public void setFoo(String foo) { this.foo = foo; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue