首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate :读取hbm.xml

Hibernate :读取hbm.xml
EN

Stack Overflow用户
提问于 2012-03-27 18:12:39
回答 3查看 6.4K关注 0票数 0

我正在阅读这篇关于roseindia的文章,以获得Hibernate的基础知识:"http://roseindia.net/hibernate/hibernate-update.shtml

我的代码如下所示,并得到相同的错误。请帮我解决一下!

Java代码:

代码语言:javascript
复制
public class UpdateExample {  
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Session sess = null;
    try {
        SessionFactory fact = new Configuration().configure().buildSessionFactory();
        sess = fact.openSession();
        Transaction tr = sess.beginTransaction();
        Insurance ins = (Insurance)sess.get(Insurance.class, new Long(1));
        ins.setInsuranceName("Jivan Dhara");
        ins.setInvestementAmount(20000);
        ins.setInvestementDate(new Date());
        sess.update(ins);
        tr.commit();
        sess.close();
        System.out.println("Update successfully!");
    }
    catch(Exception e){
        System.out.println(e.getMessage());
    }
}

}

代码语言:javascript
复制
public class Insurance {  

 private String insuranceName;
 private double investementAmount;
 private Date investementDate;

  public String getInsuranceName() {
    return insuranceName;
}

public void setInsuranceName(String insuranceName) {
    this.insuranceName = insuranceName;
}

public double getInvestementAmount() {
    return investementAmount;
}

public void setInvestementAmount(double investementAmount) {
    this.investementAmount = investementAmount;
}

public Date getInvestementDate() {
    return investementDate;
}

public void setInvestementDate(Date investementDate) {
    this.investementDate = investementDate;
}

}

和我的contact.hbm.xml:

代码语言:javascript
复制
    <?xml version="1.0"?>  
   <!DOCTYPE hibernate-mapping PUBLIC   
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  <hibernate-mapping>  
  <class name="Contact" table="CONTACT">  
      <id name="id" type="long" column="ID" >  
      <generator class="assigned"/>  
     </id>  

   <property name="firstName">
     <column name="FIRSTNAME" />
  </property>
  <property name="lastName">
    <column name="LASTNAME"/>
  </property>
  <property name="email">
    <column name="EMAIL"/>
  </property>
    </class>  



 <class name="Book" table="book">
  <id name="lngBookId" type="long" column="id" >  
   <generator class="increment"/>  
   </id>  

  <property name="strBookName">
  <column name="bookname" />  
  </property>  
    </class>   

  <class name="Insurance" table="insurance">  
  <id name="insuranceName" type="String" column="InsuranceName" >  
   />  
  </id>  

  <property name="investmentAmount">  
  <column name="InvestmentAmount" />  
  </property>  

  <property name="investmentDate">  
  <column name="InvestmentDate" />  
  </property>  


  </class>   


  </hibernate-mapping>    

我得到的错误是:

“读取资源时出错: contact.hbm.xml”

此外,我还创建了数据库表的名称保险与这些列的字段。

谢谢

Sneha

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-27 18:18:25

hbm.xml文件中是不是缺少了什么?它不是一个完整的XML文件。

您需要将hbm.xml文件与类的编译类文件放在一起。

票数 0
EN

Stack Overflow用户

发布于 2012-03-27 18:19:50

这是你的整个.hbm.xml文件吗?如果是这样的话,它是不完整的-它缺乏如下所示的适当结构:http://roseindia.net/hibernate/hibernateormapping.shtml

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
  <class name="roseindia.tutorial.hibernate.Contact" table="CONTACT">
   <id name="id" type="long" column="ID" >
   <generator class="assigned"/>
  </id>

  <property name="firstName">
   <column name="FIRSTNAME" />
  </property>
  <property name="lastName">
  <column name="LASTNAME"/>
  </property>
  <property name="email">
  <column name="EMAIL"/>
  </property>
 </class>
</hibernate-mapping>
票数 0
EN

Stack Overflow用户

发布于 2012-03-27 18:28:31

您必须定义两个POJO类

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE hibernate-mapping
            PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
                  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">                      
                <hibernate-mapping>

                    <class name="Book" table="book" >          
                             <id name="lngBookId" column="id" type="long">
                            <generator class="increment"></generator>
                         </id>
                            <property name="strBookName" type="string">
                               <column name="bookname" sql-type="VARCHAR2(55)"/>
                            </property>

                    </class>                   

                <class name="Insurance" table="insurance" >          

                 <property name="firstName" type="string">
                      <column name="FIRSTNAME" sql-type="VARCHAR2(55)"/>
                 </property>
                 <property name="lastName" type="string">
                      <column name="LASTNAME" sql-type="VARCHAR2(55)"/>
                 </property>
                 <property name="email" type="string">
                      <column name="EMAIL" sql-type="VARCHAR2(55)"/>
                 </property>
            </class>
            </hibernate-mapping>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9887494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档