Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate命名查询不知道错误_Java_Spring_Hibernate - Fatal编程技术网

Java Hibernate命名查询不知道错误

Java Hibernate命名查询不知道错误,java,spring,hibernate,Java,Spring,Hibernate,我不知道为什么,但是当我将这个项目导入Eclipse时。这很有效 所以,我认为这是eclipse项目导入InteliJ IDEA时的问题 这不是我想象的那么容易 我有用于映射hibernate的class Setting和Setting.hbm.xml。 在本课程中: <hibernate-mapping> <class name="Setting" table="setting" lazy="false"> <id name="id" column="i

我不知道为什么,但是当我将这个项目导入Eclipse时。这很有效

所以,我认为这是eclipse项目导入InteliJ IDEA时的问题


这不是我想象的那么容易

我有用于映射hibernate的class Setting和Setting.hbm.xml。 在本课程中:

<hibernate-mapping>
<class name="Setting" table="setting" lazy="false">
    <id name="id" column="id" type="integer">
        <generator class="increment" />
    </id>

    .....
</class>

<query name="select.setting">
    from Setting as s where s.id = ? order by s.name
</query>
此返回错误

org.springframework.orm.hibernate4.HibernateSystemException: Named query not known: select.setting; nested exception is org.hibernate.MappingException: Named query not known: select.setting
at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:218) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:343) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:308) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.orm.hibernate4.HibernateTemplate.findByNamedQuery(HibernateTemplate.java:933) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]

请给出建议。

你可以试试这个

<query name="select.setting">
    <![CDATA[from Setting as s where s.id = ? order by s.name]]>
</query>

XML解析器对您没有使用CDATA标记感到困惑。 CDATA是告诉框架它是一个不应该被解释为标记的数据的一种方式

因此,正如@Lovababu所提到的,在CDATA标记中包含查询:

<query name="select.setting">
<![CDATA[from Setting as s where s.id = ? order by s.name]]>


可能存在重复的qtn。检查此链接,它不是重复的兄弟。请再次检查不带点的查询名称是否给出相同的结果?(比如说:“selectSetting”而不是“select.setting”)。您是否在会话中包含了
hbm
?是的,我使用spring boot并已经设置了映射@Bean public LocalSessionFactoryBean sessionFactory()抛出异常{LocalSessionFactoryBean sessionFactory=new LocalSessionFactoryBean();sessionFactory.setDataSource(dataSource());sessionFactory.setHibernateProperties(hibernateProperties());sessionFactory.setMappingDirectoryLocations(新类路径资源[]{new类路径资源(“数据/模型”)});
<query name="select.setting">
<![CDATA[from Setting as s where s.id = ? order by s.name]]>