欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Hibernate中常見(jiàn)的20個(gè)問(wèn)題(1-10)-吳胤 - 新浪BLOG
寫(xiě)博客,參與“我的2008--我記錄活動(dòng)”,贏(yíng)現金大獎! 注冊┆登錄┆發(fā)表文章 Hibernate中常見(jiàn)的20個(gè)問(wèn)題(1-10) 2007-06-24 18:24:26 大 中 小 標簽:java hibernate 常見(jiàn)問(wèn)題 1問(wèn):Hibernate初始化時(shí)總是報錯:java.lang.NoClassDefFoundErrorHibernate初始化時(shí)出現出錯代碼:java.lang.NoClassDefFoundError: net/sf/ehcache/CacheException答:這是新手常見(jiàn)問(wèn)題。是因為使用默認設置時(shí),Hibernate文檔里指出的Hibernate庫不完整,缺少ehcache.jar(用于支持Ehcache的相關(guān)文件)。配置中加入以上文件,就可以避免初始化時(shí)出現java.lang.NoClassDefFoundError:net/sf/ehcache/CacheException異常。 2問(wèn):Hibernate報錯:"Not binding factory to JNDI, no JNDI name configured"運行下列程序:public static void main(String[] args) throws Exception { Configuration conf = new Configuration().addClass(Person.class);......出現錯誤碼:12:15:34,250 INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configuredjava.lang.UnsupportedOperationException: The user must supply a JDBC connectionat net.sf.Hibernate.connection.UserSuppliedConnectionProvider.getConnection (UserSuppliedConnectionProvider.java:32)at net.sf.Hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:289)at net.sf.Hibernate.impl.SessionImpl.connect(SessionImpl.java:3361)at net.sf.Hibernate.impl.SessionImpl.connection(SessionImpl.java:3321)at net.sf.Hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:66)at net.sf.Hibernate.loader.Loader.prepareQueryStatement(Loader.java:779)at net.sf.Hibernate.hql.QueryTranslator.iterate(QueryTranslator.java:864)at net.sf.Hibernate.impl.SessionImpl.iterate(SessionImpl.java:1618)at net.sf.Hibernate.impl.QueryImpl.iterate(QueryImpl.java:27)at com.Hibernate.person.TestQueryPerson.main(TestQueryPerson.java:28)Exception in thread "main"答:修改main函數,為該程序指定配置文件即可。public static void main(String[] args) throws Exception { File file=new File("./Hibernate.cfg.xml"); Configuration conf = new Configuration().configure(file);......配置文件如下。 3問(wèn):使用開(kāi)發(fā)工具Elipse,運行時(shí)總報java.lang.NoClassDefFoundError: org/ Hibernate/Session異常使用Elipse,所用包是hibernte 3,發(fā)現在A(yíng)ction中每次執行到:session=HibernateSessionFactory.currentSession();時(shí),出現java.lang.NoClassDefFoundError: org/Hibernate/Session異常,如下:java.lang.NoClassDefFoundError: org/Hibernate/Session Hibernate3.Hibernate.ExcuteClass.search(ExcuteClass.java:17) Hibernate3.Hibernate.ExcuteClass.test3(ExcuteClass.java:13) Hibernate3.Hibernate.Svlt.doGet(Svlt.java:50) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)[/b]答:這是初學(xué)者常見(jiàn)問(wèn)題,原因是沒(méi)有導入hibernate 3.jar包,雖然把hibernate 3.jar寫(xiě)入了Classpath,但部署的時(shí)候卻沒(méi)有拷貝到lib下面,可以手動(dòng)拷貝進(jìn)入。 4問(wèn):執行如下方法時(shí),發(fā)生"No CurrentSessionContext configured"錯誤執行如下方法時(shí),發(fā)生"No CurrentSessionContext configured"錯誤:Public static Session currentSession() {try { System.out.println("HibernateUtil.currentSession() - start"); return getSessionFactory().getCurrentSession();} catch (HibernateException ex) { System.out.println("HibernateUtil.currentSession() - failed due to " + ex); throw ex; }}答:這個(gè)錯誤是由配置文件引起。在集成Hibernate的環(huán)境下(例如Jboss),在session-factory段加入:jta在不集成Hibernate的環(huán)境下(例如使用JDBC的獨立應用程序),在session-factory段加入:thread就可以解決這個(gè)問(wèn)題。 5問(wèn):移植Jboss 4下配置Hibernate出錯在Tomcat 5下配置Hibernate成功,但移植到Jboss 4下出現了很多問(wèn)題。已在deploy目錄下放置了Hibernate-service.xml和Hibernate.cfg.xml文件,但啟動(dòng)服務(wù)器仍然報錯 如下。16:56:54,046 ERROR [URLDeploymentScanner] Incomplete Deployment listing:Packages waiting for a deployer:org.Jboss.deployment.DeploymentInfo@24bd343 { url=file:/C:/Downloads/temp/Jboss-4.0.0/server/default/deploy/Hibernate.cfg.xml }deployer: nullstatus: nullstate: INIT_WAITING_DEPLOYERwatch: file:/C:/Downloads/temp/Jboss-4.0.0/server/default/deploy/Hibernate.cfg.xmlaltDD: nulllastDeployed: 1113987414046lastModified: 1113987414046mbeans:Incompletely deployed packages:org.Jboss.deployment.DeploymentInfo@24bd343 { url=file:/C:/Downloads/temp/Jboss-4.0.0/server/default/deploy/Hibernate.cfg.xml }deployer: nullstatus: nullstate: INIT_WAITING_DEPLOYERwatch: file:/C:/Downloads/temp/Jboss-4.0.0/server/default/deploy/Hibernate.cfg.xmlaltDD: nulllastDeployed: 1113987414046lastModified: 1113987414046mbeans:答:這是在Jboss中使用Hibernate的常見(jiàn)問(wèn)題。在Jboss的某個(gè)war包中使用Hibernate應該將Hibernate.cfg.xml文件放置到%war_dir%WEB-INF/classes中,但是Hibernate的factory仍然可能會(huì )提示Hibernate.cfg.xml not found。此問(wèn)題解決方法如下。由于Jboss已經(jīng)集成了Hibernate,在deploy\lib文件夾中hibernate2.jar的文件已經(jīng)存在了一個(gè)jar包,所以實(shí)際的war中可能使用了shar的hibernate2.jar,由于ClassLoader只會(huì )在hibernate2.jar的同級及上級目錄中尋找hibernate.cfg.xml,所以導致Hibernate并沒(méi)有去查找%war_dir%WEB-INF/classes中的Hibernate.cfg.xml文件。刪除deploy/lib下的hibernate2.jar或者使用絕對路徑指定Hibernate.cfg.xml可以解決。除非有其他需求,否則在Jboss下部署Hibernate與在Tomcat下是一樣的,并不需要加其他配置文件。 6問(wèn):到底在哪里使用cascade="..."?答:cascade屬性并不是多對多關(guān)系一定要用的,用了它只是插入或刪除對象時(shí)更方便一些,只要在cascade的源頭上插入或刪除,所有cascade的關(guān)系就會(huì )被自動(dòng)插入或刪除。其中unsaved-value是個(gè)很重要的屬性,Hibernate是通過(guò)這個(gè)屬性來(lái)判斷這個(gè)對象應該“save”還是“update”,如果這個(gè)對象的id是unsaved-value,那說(shuō)明這個(gè)對象不是persistence object,要save(insert);如果id是非unsaved-value,那說(shuō)明這個(gè)對象是persistence object(數據庫中已存在),只要update就行了。 7問(wèn):到底在哪里使用inverse="true"?答:inverse屬性默認是false,就是說(shuō)關(guān)系的兩端都來(lái)維護關(guān)系。這個(gè)意思就是說(shuō),如有3個(gè)表:Student、Teacher和TeacherStudent,Student對象和Teacher對象是多對多關(guān)系,這個(gè)關(guān)系由TeacherStudent表來(lái)表現。那么什么時(shí)候插入或刪除TeacherStudent表中的記錄呢。用Hibernate時(shí),不會(huì )顯式的對TeacherStudent表操作,對TeacherStudent的操作是Hibernate自動(dòng)做的。Hibernate就是hbm文件中指定的是“誰(shuí)”維護關(guān)系,在插入或刪除時(shí),就會(huì )觸發(fā)對關(guān)系表的操作。前提是“誰(shuí)”這個(gè)對象已經(jīng)知道這個(gè)關(guān)系,就是說(shuō)關(guān)系另一頭的對象已經(jīng)set或是add到“誰(shuí)”這個(gè)對象里來(lái)。前面說(shuō)過(guò)inverse默認是false,就是關(guān)系的兩端都維護關(guān)系,對其中任一個(gè)操作都會(huì )觸發(fā)對表的操作。當在關(guān)系的一頭,如Student中的bag或set中用了inverse="true"時(shí),就代表關(guān)系是由另一端維護的(Teacher)。就是說(shuō)當插入Student時(shí),不會(huì )操作TeacherStudent表,即使Student已經(jīng)知道了關(guān)系。只有Teacher插入或刪除時(shí)才會(huì )觸發(fā)對關(guān)系表的操作。所以,關(guān)系的兩頭都用inverse="true"是不對的,會(huì )導致任何操作都不觸發(fā)對關(guān)系表的操作。當兩端都是inverse="false"或是default值時(shí),在代碼中對關(guān)系顯式的維護也是不對的,會(huì )導致在關(guān)系表中插入兩次關(guān)系。 8問(wèn):Cascade和Inverse有什么區別?答:可以這樣理解,Cascade定義的是關(guān)系兩端對象到對象的級聯(lián)關(guān)系;而Inverse定義的是關(guān)系和對象的級聯(lián)關(guān)系。 9問(wèn):在刪除操作時(shí)報錯:net.sf.Hibernate.ObjectDeletedException:deleted object would be re-saved by cascade (remove deleted object from associations)答:要刪除關(guān)系的一頭時(shí)(如,要刪除一個(gè)已經(jīng)和Student對象有關(guān)聯(lián)的Teacher對象),當tx.commit()時(shí)才會(huì )拋出這個(gè)異常。防止出現這個(gè)異常的方法如下。 在Student端不用cascade。 或是用cascade的話(huà),就顯式的刪除對像中的關(guān)系。 在Teacher端要用cascade。 10問(wèn):出現net.sf.Hibernate.HibernateException: identifier of an instance of my. MyObject altered from N to N異常答:這個(gè)異常不是多對多關(guān)系中常遇到的,但是這個(gè)異常的提示容易讓人混淆。這是因為在Java對象中,id定義和hbm文件的不一樣。如Java中用long,而hbm中用type= "integer"。 轉自:http://book
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Hibernate配置文件在單元測試中的靈活運用
HIBERNATE一對多配置實(shí)例
Hibernate中inverse="true"的理解
第五章. 發(fā)布
eclipse常用插件在線(xiàn)安裝地址或下載地址
Hibernate Tools說(shuō)明
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久