Hibernate 菜鳥教程 異常 集錦


異常1.Error parsing JNDI name [foo]

異常信息摘要:

org.hibernate.engine.jndi.JndiException: Error parsing JNDI name [foo] at org.hibernate.engine.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:141)
  • 1
  • 2

異常信息說明:不能解析連接池foo

拷貝官方配置文件hibernate.cfg.xml的里面<session-factory name=”foo”>默認包含此foo屬性配置,此異常不過是不影響運行的結果

解決思路:刪除name=”foot”即可


異常2.org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.mysql.jdbc.Driver]

異常信息摘要:

org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.mysql.jdbc.Driver] at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:243) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:200)
  • 1
  • 2
  • 3

異常信息說明:不能加載mysql驅動 
解決思路:拷貝mysql驅動至classpath或者修改maven的pom.xml

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

異常3.密碼錯誤

異常信息摘要:

org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
  • 1
  • 2

異常信息說明:不能獲取連接

解決思路:修改mysql的密碼至正確

密碼寫錯或者connection.pasword少寫一個s字母
<property name="connection.pasword">12345</property>
  • 1
  • 2

異常4.連接數據庫url錯誤

異常信息摘要:

java.lang.UnsupportedOperationException: The application must supply JDBC connections
<property name="connection.urls">jdbc:mysql:///hibernate</property> org.hibernate.HibernateException: Unable to make JDBC Connection [jdbc:mysql6:///hibernate] <property name="connection.url">jdbc:mysql:///hibernate</property>
  • 1
  • 2
  • 3
  • 4

異常信息說明:url地址或者key寫錯

解決思路:修改url地址或者key

<property name="connection.url">jdbc:mysql:///hibernate</property>
  • 1

異常5.未知實體類

異常信息摘要:

org.hibernate.MappingException: Unknown entity: com.jege.hibernate.single.table.User at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1096) at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1443)
  • 1
  • 2
  • 3

異常信息說明:映射異常,hibernate配置文件沒有加載映射文件

解決思路:在配置文件中通過mapping元素將映射文件加載進來

<mapping resource="com/jege/hibernate/single/table/User.hbm.xml" />
  • 1

異常6.全類名寫錯

異常信息摘要:

org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/jege/hibernate/single/table/User.hbm.xml Caused by: org.hibernate.MappingException: class com.jege.hibernate.single.table.User.User not found while looking for property: id Caused by: java.lang.ClassNotFoundException: com.jege.hibernate.single.table.User.User <hibernate-mapping package="com.jege.hibernate.single.table.User"> <class name="User" table="t_user">
  • 1
  • 2
  • 3
  • 4
  • 5

異常信息說明:映射文件全類名不正確

解決思路:修改全類名

屬性package只寫包路徑,不要將類名也寫進去 <hibernate-mapping package="com.jege.hibernate.single.table"> <class name="User" table="t_user">
  • 1
  • 2
  • 3

異常7.屬性名寫錯

異常信息摘要:

org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/jege/hibernate/single/table/User.hbm.xml Caused by: org.hibernate.PropertyNotFoundException: field [userUame] not found on com.jege.hibernate.single.table.User <property name="userUame" column="name" />
  • 1
  • 2
  • 3
  • 4

異常信息說明:映射文件屬性名不正確

解決思路:修改屬性名

<property name="username" column="name" />
  • 1

異常8.對象不存在

異常信息摘要:

org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.jege.hibernate.single.table.User#5] User user = (User)session.load(User.class, 5L); System.out.println(user.getPassword());
  • 1
  • 2
  • 3
  • 4

異常信息說明:load方法沒有找到對應的主鍵的實體

解決思路:使用get方法替換load,判斷返回值是否null

User user = (User) session.get(User.class, 5L); if (user != null) { System.out.println(user.getPassword()); }

引用原文:https://blog.csdn.net/je_ge/article/details/53875649

 

寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!

如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM