Hibernate 在進行雙向關聯 時 jUnit不通過 控制檯報錯
愚蠢的一批0.0 這個問題 困擾了我三天。
當我進行雙向關聯儲存資料時,控制檯報錯
log4j:WARN No appenders could be found for logger (org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Junti 報錯
java.lang.ExceptionInInitializerError
at com.itheima.test.Demo1.run2(Demo1.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Unable to execute schema management to JDBC target [alter table cst_linkman add constraint FKh9yp1nql5227xxcopuxqx2e7q foreign key (lkm_cust_id) references cst_customer (cust_id)]
at org.hibernate.tool.schema.internal.TargetDatabaseImpl.accept(TargetDatabaseImpl.java:59)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applySqlString(SchemaMigratorImpl.java:431)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applySqlStrings(SchemaMigratorImpl.java:420)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.applyForeignKeys(SchemaMigratorImpl.java:386)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigrationToTargets(SchemaMigratorImpl.java:214)
at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:60)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:133)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:101)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:470)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at utils.HibernateUtils.<clinit>(HibernateUtils.java:25)
... 24 more
Caused by: java.sql.SQLSyntaxErrorException: Table 'hibernate_day03hh.cst_linkman' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1354)
at com.mysql.cj.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2127)
at com.mysql.cj.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1264)
at org.hibernate.tool.schema.internal.TargetDatabaseImpl.accept(TargetDatabaseImpl.java:56)
... 36 more
一開始沒有絲毫頭緒,在檢視java.lang.ExceptionInInitializerError 可能出現的情況的時候 發現是靜態程式碼塊可能出現問題。我聯想到編寫HibernateUtils 獲取 session 是 使用到了 靜態程式碼塊 但是沒有找到解決的辦法。 於是先去解決控制檯的問題。(借鑑:https://stackoverflow.com/questions/12532339/no-appenders-could-be-found-for-loggerlog4j) 後面去讀控制檯曝出的日誌時 發現可能是資料庫中沒有我要操作的雙向關聯那兩張表的原因 於是我去建立兩張表後 再執行程式 Junit通過。。
疑問: Hibernate框架按道理是 沒有表時 應該自動建立表才對啊 。。 為什麼必須有表的情況下 才能進行雙向關聯。
相關推薦
Hibernate 在進行雙向關聯 時 jUnit不通過 控制檯報錯
愚蠢的一批0.0 這個問題 困擾了我三天。 當我進行雙向關聯儲存資料時,控制檯報錯 log4j:WARN No appenders could be found for logger (org.jboss.logging). log4j:WARN Please ini
Hibernate使用createSqlQuery進行模糊查詢時找不到數據
hql slist org 結果 reat nbsp ring 模糊查詢 div 1. 首先明確一點,使用createSqlQuery如下兩種方式的占位符都可以使用,這個在官方的文檔可以查到。 註意使用模糊查詢時,賦值兩邊不可以添加單引號。 Query query
hibernate one2many (雙向關聯)
gif pro ng- utf-8 getc div sed .class blog 跟單向關聯僅有幾處不同: 1從多的一方加入新的屬性 package com.cnblogs.hibernate_first; public class Student { p
Maven -- 在進行war打包時排除不需要的文件
col log plugin 進行 str nbsp pan clu span https://blog.csdn.net/zsg88/article/details/78128603 <excludes> <!-- 排除文件,不包含子目錄,對W
JS和Java在對中文進行MD5加密時,不一致問題解決
最近和前端同學除錯,發現我這裡總是無法驗證通過,因為他傳給我的MD5和我生成的MD5總是對不上。但是一開始的時候,我是驗證了兩邊的方法的,以test為例在頁面的console中輸入MD5('test')則輸出結果為098f6bcd4621d373cade4e832627b4f
hibernate關聯查詢時物件設定int型別報錯
例如:A,B表,left join左表關聯,B表少條關聯資料,如果B表中有int型別,在物件中要用Integer包裝類,否則關聯查詢時int型別不能為null就會報錯,Integer有null值就沒問題
Linux使用yum命令安裝軟體時,連線不了網路報錯:ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
錯誤: 解決方案: 在/etc/sysconfig/network-scripts/ifcfg-eth0檔案中配置DNS資訊: vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 進入檔案編輯 修改(新增DNS): DNS1=8.8.
常量不加引號報錯提示‘參數**沒有默認值’
選中 需要 ron img ges style sql語句 bsp nbsp 問:sql語句中常量不加引號報錯提示‘參數**沒有默認值’; 解決方法: 如下圖所示加上英文狀態下的引號; 字符串 要加上 單引號;‘‘單引號 算一個 ; 問:為何選中這列不需要加引
傳參時Url中有中文報錯
head 無效 解釋 content uri 就會 invalid ins character url中如果傳了中文,瀏覽器會報錯:The header content contains invalid characters。 原因:瀏覽器自動把這個url進行decodeU
react-native run-android時 SDK location not found.報錯
not 自動創建 per 解決 not found -a 原因 and 報錯 報錯 原因 缺少local.properties文件(SDK location) 解決 方法一:在android Studio中打開項目android目錄,會自動創建local.properti
vue v-for 遍歷循環時的key值的報錯
bsp ive using IT void 對象 key值 索引 AR 問題如下: [Vue warn] Avoid using non-primitive value as key, use string/number value instead. non-pr
Hibernate主鍵生成策略strategy = "increment"報錯違反唯一性約束
block 一個 blog tps 發現 rate 51cto image 主鍵 背景2018年7月份,系統爆出一條bug。就是支持Excel導入的功能,導入第二次同模板不同數據時,報錯,違反唯一性約束。就死活用不了了,重啟Tomcat才能恢復使用。但只能到一個文件 分析需
解決:oracle+myBatis ResultMap 類型為 map 時返回結果中存在 timestamp 時使用 jackson 轉 json 報錯
得到 了解 strong asn oid style 就是 put ted 前言:最近在做一個通用查詢單表的組件,所以 sql 的寫法就是 select *,然後 resultType="map" ,然後使用 jackson @ResponseBody 返回前端報錯。 轉
npm 安裝擴展模塊時,因緩存報錯的問題匯總
errno -s lean color nbsp 擴展 運行 clean expected 1、緩存報錯問題一 : unexpected end of file 解決方法:運行:npm cache verify 清除緩存 2、緩存報錯問題二 : errno
【Java】import org.junit.Test 和@Test報錯
【問題描述】 Java專案中匯入import org.junit.Test 和使用@Test時報錯。 【解決辦法】 1、在MyEclipse或Eclipse專案中右擊屬性選擇【
mysql 8.0 遠端連不上navicate 報錯
發現是加密方式的問題 原來新版的mysql的加密方式不同於5.7 http://binary-space.iteye.com/blog/2412769 參考上面這篇文章 類似這種方法 換個加密方式就行了 ALTER USER 'root'@'%' IDENTI
dotnetcore ef 呼叫多個數據庫時使用者命令執行操作報錯
dotnetcore ef 呼叫多個數據庫時使用者命令執行操作報錯 1、多個DbContext 時報錯: 報錯: More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for
WebSphere 控制檯打不開,報錯:Couldn't flush user prefs
日誌: [10/15/18 10:44:36:038 CST] 00000001 ManagerAdmin I TRAS0017I: The startup trace state is *=info. [10/15/18 10:44:36:907 CST] 00000001 Ad
spring boot junit測試的時候報錯MockServerContainer does not support addEndpoint
在編寫junit測試spring boot專案的時候報錯MockServerContainer does not support addEndpoint 然自己在@SpringBootTest中加上SpringBootTest.WebEnvironment.RANDOM_PORT成功解決
使用springboot 時contraller中findById 方法報錯問題
在書寫springboot的contraller時 出現了 findById和findOne 報錯出紅。 經過查詢一番資料後,發現spring boot 2版本中所用的查詢是 findById(); 並且在使用的時候會加上一個get()方法