ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring Hibernate批注错误“未映射”

2019-10-31 15:19:31  阅读:160  来源: 互联网

标签:hibernate annotations spring


我将Spring Hibernate与注释一起使用,但出现以下错误:

org.hibernate.hql.ast.QuerySyntaxException: Produit is not mapped [from Produit]

它在我调用此函数时出现:

public List<Produit> getListeProduit() {

    return sessionFactory.getCurrentSession().createQuery("from Produit").list();
}

这是我的hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
    <mapping class="port.domain.Produit" />
</session-factory>     
</hibernate-configuration>

使用@ Entity,@ Table可以很好地注释产品类
带有@ Id,@ Column,@ GeneratedValue的ID
@Column的其他列

这是我的XXX-servlet.xml中的bean SessionFactory:

<bean id="sessionFactory"     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
        <property name="configurationClass">
            <value>org.hibernate.cfg.AnnotationConfiguration</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
</bean>

编辑:实体代码

@Entity
@Table(name="produit")
public class Produit implements Serializable{

@Id
@Column(name="produit_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int produitId;

@Column(name="produit_nom")
private String produitNom;

public void setProduitId(int i) {
    produitId = i;
} 

public int getProduitId() {
    return produitId;
} 

public void setProduitNom(String s) {
    produitNom = s;
} 

public String getProduitNom() {
    return produitNom;
} 
}

我知道有关此问题的话题很多,但是我找不到任何正确的问题.
我知道Hibernate无法映射我的班级,但我不知道为什么…

问题出在哪里?

非常感谢.

解决方法:

通常问题很简单:您应该使用javax.persistence.Entity而不是特定于Hibernate的org.hibernate.annotations.Entity. Hibernate中不推荐使用后者,而在可能的情况下推荐使用JPA批注.

那正是您没有显示的内容,所以希望这是个幸运的镜头:)

标签:hibernate,annotations,spring
来源: https://codeday.me/bug/20191031/1976546.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有