1. 程式人生 > >hibernate級聯儲存報錯(2)

hibernate級聯儲存報錯(2)

級聯儲存單元測試通過,控制檯報錯:

IllegalArgumentException occurred while calling setter for property [com.hibernate_stu.entity.Customer.setLinkMan (expected type = java.util.HashSet)]; target = [[email protected]], property value = [[[email protected]]]
at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:99)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:607)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:220)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4573)
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:261)
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:109)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:679)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:671)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:666)
at com.hibernate_stu.hibernatetest.HibernateOneToMany.testAddDemo1(HibernateOneToMany.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.hibernate.property.access.spi.SetterMethodImpl.set(SetterMethodImpl.java:44)

... 38 more

檢視報錯occurred while calling setter for property [com.hibernate_stu.entity.Customer.setLinkMan (expected type = java.util.HashSet)]; target = [[email protected]], property value = [[[email protected]]]值非法引數異常,發現是在多對一格式中將一表的set集合寫成了HashSet集合,導致型別錯誤。hibernate中要求使用集合表示多的資料,要求使用set集合,set是無序的且不能有重複元素


改為

問題解決,插入成功:

相關推薦

hibernate儲存2

級聯儲存單元測試通過,控制檯報錯:IllegalArgumentException occurred while calling setter for property [com.hibernate_stu.entity.Customer.setLinkMan (expect

啟動資料庫2控制檔案丟失

Show parameter control 控制檔案查詢 控制檔案存在於引數檔案,也存在快速恢復區 可以通過日誌恢復,也可以來回create 複製 Shutdown inmediate/abort(例項關閉) 控制檔案有兩個位置存在:/u01/app/oracle/

部署CM2:Formatting the name directories of the current NameNode. If the name directories are not e

一、問題描述 第一次新增hdfs服務,有警告一個服務沒有啟動對。就刪除了hdfs。然後重新安裝hdfs服務,就報錯 Formatting the name directories of the current NameNode. If the name directories are n

SSH操作:org.hibernate.exception.ConstraintViolationException: Could not execute

SSH整合過程中,刪除具有外來鍵的記錄時報錯: spring4+hibernate4 org.hibernate.exception.ConstraintViolationException: C

Linux使用tar解壓.tar.bz2檔案:原因tar: Child returned status 2 tar: Error is not recoverable: exiting now

tar -jxvf xxxx.tar.bz2 如下報錯: tar (child): bzip2:無法 exec: 沒有那個檔案或目錄 tar (child): Error is not recoverable: exiting now tar: Child returned stat

【JPA 儲存/刪除】@OneToMany 雙向 一對多【轉】

【http://blog.sina.com.cn/s/blog_625d79410101dbdd.html】   看過前兩篇幫助文件 【JPA】 @OneToOne 單向 和 【JPA】@OneToOne 雙向 想必大家對級聯操作已經充

hibernate 刪除更新失敗的問題

使用Hibernate框架,做級聯刪除時,出現一下報錯: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update 首先檢視級聯刪除物件的對映配置檔案, 是否有配置關

Hibernate儲存

   在使用持久化框架Hibernate的時候,有時候會用到級聯儲存: 儲存主表記錄的同時將子表記錄一併儲存的方法通常叫級聯儲存  java程式碼參考//新增記錄到基表,同時新增記錄到歷史表及聯儲存

Hibernate儲存與刪除

  Hibernate為程式設計師提供一種級聯操作,在編寫程式時,通過Hibernate的級聯功能可以很方便的操作資料庫的主從表的資料,我們最常用的級聯是級聯儲存和級聯刪除,下面分別來看一下級聯儲存和級聯刪除。        我準備了MenuPanel和Menu兩個物件,

hibernate儲存 ,同時自動獲取外來鍵值

org.hibernate.exception.ConstraintViolationException: could not execute statementat org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLEx

Hibernate儲存和更新

   級聯儲存和更新   的cascade屬性設定為"save-update" ,cascade的預設屬性值為none。   cascade:設定操作物件時的級聯操作,即層級之間的連鎖操作   值 delete :表示在執行delete時,進行級聯操作,刪除和他關聯的物

Hibernate的增刪改查操作2

rac result jlist static 面向 原生 comm public set 一、在Hibernate中使用原生SQL語句 sql語句面向的是數據庫,所以sql語句中對應的不再是bean了,比如sql="select * from user" 在hql中

MO拆分計劃行程序中寫入PRODUCTIONORDERS表數據出現重復導致BUG20180502

pro info nbsp ima spl ppm UC 錯誤提示 rod 錯誤提示:ORA-00001: 違反唯一約束條件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 199 ORA-06

下拉列表三級

<!DOCTYPE html> <html lang="zh"> <head>     <meta charset="UTF-8" />     <meta name="viewport

javaWEB專案eclipse

javaEE專案報錯:has been compiled by a more recent version of the Java Runtime (class file version 53.0) 原因:eclipse預設設定了jdk編譯版本,啟動tomcat伺服器會自動呼叫jdk編譯專案

spring boot 1

The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?... 報錯 如圖: 百度搜

**JDK安裝完成後輸入javac仍然win10**

我的電腦之前裝過1.6版本的jdk,現在想換成1.8版本。 下載之後按照教程一步步安裝,配置環境變數,但是在最後命令列測試的時候發現輸入java,java -version命令都可以執行(說明JAVA_HOME和CLASSPATH都沒有配錯),但是輸入javac就說“不是內部命令或者外部命令

我的物專案環境搭建2Esp8266裝置端程式碼測試版

步驟一、Arduino1.8.5 #include <ESP8266WiFi.h> #include <PubSubClient.h> // Update these with values suitable for your netw

Linux使用tar解壓.tar.bz2檔案:原因

tar -jxvf xxxx.tar.bz2 如下報錯: tar (child): bzip2:無法 exec: 沒有那個檔案或目錄 tar (child): Error is not recoverable: exiting now tar: Child r

【機器學習實戰—第4章:基於概率論的分類方法:樸素貝葉斯】程式碼python3

1、報錯:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xae in position 199: illegal multibyte sequence 原因:這是檔案編碼的問題,檔案中有非法的多位元組字元。 解決辦法:開啟Ch04\