解決 An AnnotationConfiguration instance is required to use

iazhou 12年前發布 | 135K 次閱讀 Hibernate 持久層框架 hibernate;annotation

最近學習Hibernate,嘗試使用XML和Annotation兩種方式進行POJO類的映射,有兩個類:Student和Teacher,前者使用XML文件來映射類和屬性,后者使用Annotation映射類和屬性,并放在一個工程下。Hibernate的配置文件——hibernate.cfg.xml位于src目錄下。在單元測試時,執行下面代碼時,會產生異常。

Configuration cfg = new Configuration();
SessionFactory sf = cfg.configure().buildSessionFactory();
</blockquote>

異常信息為:org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="***"/>

原因分析:

Hibernate配置文件中,若帶有<mapping class="com.jjj.Student"/>,則說明映射類時,采用了Annotation方式。在初始化Configuation時,應使用AnnoationConfiguration,代碼如下:

Configuration cfg = new AnnoationConfiguration();
SessionFactory sf = cfg.configure().buildSessionFactory();

如果,你在映射時,未使用過Annotation,則使用Configuration。

附:若要修改MySQL的字符集,最直接的方式,是重新配置MySQL,MySQL的安裝目錄下有個文件

MySQL\MySQL Server 5.1\bin\MySQLInstanceConfig

執行下該文件,在“字符集設置”里選擇你默認編碼,一般是utf-8,或者是GBK。此外,需要注意源程序的編碼也要與數據庫一致。 

 本文由用戶 iazhou 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!