Wednesday, 13 December 2017

Inkonsekventa datatyper väntat nummer fick binära alternativ


Jag är ny i Hibernate, jag försöker göra en enkel användarinsättning till Oracle-databasen jag har skapat. Jag skapade alla nödvändiga filer med Netbeans Hibernate-guider: hibernate. cfg. xml, hibernate, reveng. xml, Users. hbm. xml, Users. java Om jag sätter in användare med Oracle SQL-utvecklaren kan jag få den här användaren från Java-kod . Men om jag försöker infoga en användare får jag felet: inkonsekventa datatyper: förväntat NUMBER har BINARY. Delvis insertUser-metod (alla parametrar är strängar): Användare Tabell i databasen: frågade dec 29 12 på 0:58 Jag har hittat det verkliga problemet, därför kunde jag lösa det. Verkligt problem: Tabellen har TIMESTAMP-fält, viloläge generera dem som serializable, vilket producera felet eftersom serializable inte är en tidsbegränsning. Fix: Jag har lagt till en kartläggningsregel till hibernate. reveng. xml: den fungerar också med datumtyp inte bara kalendrar (kanske fler typer jag försökte inte). Slutsats: shouldnt relä på auto generera mekanism. Fortfarande inte fungerar, jag blir nu noll från user. getUserid () vilket betyder att generatorn classquotincrementquot inte fungerar (förmodligen för att användarid i Users. hbm. xml är av typen quotintquot, jag har försökt att ändra den till andra typer då får jag inkonsekventa datatyper fel igen). Jag förstår inte någonting, jag skapade inte användarklassen, den genererades automatiskt med viloläge, så hur kommer jag att behöva göra ändringar i den här klassen, det antar inte att skapa användarklass med de rätta typerna som respekteras i databasbordet ndash GoldenAxe Dec 29 12 klockan 11:22 har jag fått det här felet tidigare när det av misstag försökte bestå av en enhet med ett av dess fält som har ett nullvärde. svarade 10 maj 16 kl 19:49 Ditt svar 2017 Stack Exchange, Inc Varför får jag det här undantaget: Jag hade det tidigare också i ett litet exempel, men på något sätt blev av med det, genom att använda tilldelad mekanism för PK generation. Men just nu använder jag inbyggd mekanism för PK generation. Uppstår det här felet eftersom ett Java null-värde läggs i en egenskap för viloläge som förväntar sig en viss data för en viss typ av Hibernate-version: 3.1 Full stack spår av något undantag som uppstår: 2006-03-15 15:35:59 ERROR MessageID (CCG-PDC-Workflow, PACS-ADT.1.159, admitPatient) Arbetsflödesundantag com. ge. medit. pdm. messaging. Dispatcher com. ge. medit. pdm. dao. DataAccessException: Misslyckades att begå transaktion på com. ge. medit. pdm. dao. ServiceLocatormitTransaction (ServiceLocator. java:245) på com. ge. medit. pdm. dao. TransactionManagermitTransaction (TransactionManager. java:12) på com. ge. medit. pdm. messaging. workflow. PatientWorkflowManager. admitPatient ( PatientWorkflowManager. java:94) vid sun. reflect. NativeMethodAccessorImpl. invoke0 (Native Method) vid sun. reflect. NativeMethodAccessorImpl. invoke (Okänd källa) vid sun. reflect. DelegatingMethodAccessorImpl. invoke (Okänd källa) vid java. lang. reflect. Method. Invoke (Okänd källa) på com. ge. medit. pdm. messaging. services. WorkflowService. handleMe ssage (WorkflowService. java:57) på com. ge. medit. pdm. messaging. Dispatcher. dispatch (Dispatcher. java:160) på com. ge. medit. pdm. messaging. WorkerThread. run (WorkerThread. java:90) Orsakad av: org. hibernate. exception. SQLGrammarException: kunde inte infoga: com. ge. medit. pdm. hibernate. valueobjects. Patient på org. hibernate. exception. SQLStateConverter. convert (SQLStateConverter. java:65) på org. hibernate. exception. JDBCExceptionHelper. convert (JDBCExceptionHelper. java:43) på org. hibernate. persister. entity. AbstractEntityPersister. insert (AbstractEntityPersister. java:2078) på org. hibernate. persister. entity. AbstractEntityPersister. insert (AbstractEntityPersister. java:2427) på org. hibernate. action. EntityInsertAction. execute (EntityInsertAction. java:51) på org. hibernate. engine. ActionQueue. execute (ActionQueue. java:243) på org. hibernate. engine. ActionQueue. executeActions (ActionQueue. java:227 ) på org. hibernate. engine. ActionQueue. executeActions (ActionQueue. java:140) på org. hibernate. event. def. AbstractFlushingEventList ener. performExecutions (AbstractFlushingEventListener. java:296) på org. hibernate. event. def. DefaultFlushEventListener. onFlush (DefaultFlushEventListener. java:27) på org. hibernate. impl. SessionImpl. flush (SessionImpl. java:1009) på org. hibernate. impl. SessionImpl. managedFlush (SessionImpl. java:356) på org. hibernate. transaction. JDBCTransactionmit (JDBCTransaction. java:106) på com. ge. medit. pdm. dao. ServiceLocatormitTransaction (ServiceLocator. java:240). 9 mer orsakad av: java. sql. SQLException: ORA-00932: inkonsekventa datatyper: förväntat NUMBER fick BINARY på oracle. jdbc. dbaccess. DBError. throwSqlException (DBError. java:134) på ​​oracle. jdbc. ttc7.TTIoer. processError ( TTIoer. java:289) på oracle. jdbc. ttc7.Oall7.receive (Oall7.java:573) på oracle. jdbc. ttc7.TTC7Protocol. doOall7 (TTC7Protocol. java:1891) på oracle. jdbc. ttc7.TTC7Protocol. parseExecuteFetch (TTC7Protocol. java:1093) på oracle. jdbc. driver. OracleStatement. executeNonQuery (OracleStatement. java:2047) på oracle. jdbc. driver. OracleStatement. doExecuteOther (OracleStatement. java:1940) på oracle. jdbc. driver. OracleStatement. doExecuteWithTimeout (OracleStatement. java:2709) på oracle. jdbc. driver. OraclePreparedStatement. executeUpdate (OraclePreparedStatement. java:589) på org. hibernate. persister. entity. AbstractEntityPersister. insert (AbstractEntityPersister. java:2065). 20 mer Namn och version av databasen jag använder: Oracle 10g. : 3 Detta undantag kan orsakas om du använder en omslagsklass för de primitive datatyperna. När wrapper-objektet innehåller nollvärde och vi försöker att fortsätta eller fråga detta fel kan jag orsaka det. Till exempel, Long id null createNamedQuery (findQuery).findById (id).getSingleResult () Detta kan orsaka ovanstående fel. Och som klokt om vi försöker fortsätta att omslaget har nollvärde kan vi få samma fel. Lösning: Du kan göra en nollkontroll innan du utför åtgärden eller försöker använda primitiv typ Redigerad av: arunsinghc den 12 juli 2008 04:41 Tack för din lösning. Det fungerar bra. Vänligen upprepa inte gamla trådar. Jag låser den här. Jive Software,: 8.0.3.1. : 20160414082626.1619a91.release8.0.3.xORA-00932: inkonsekventa datatyper: förväntat NUMBER fick BINARY Kan någon hjälpa till med att lösa mitt problem Jag 145m utvecklar cmp-bönor i Jbuilder X, Min databas är Oracle 10g och Application server är Oracle10gAs. När jag försöker distribuera mina bönor till min Oracle 10As får jag: - Fel ORA-00932: inkonsekventa datatyper: förväntat NUMBER har BINARY. I Min databas har jag deklarerat tabellens primära nycklar som typ NUMBER i Jbuilder X får motsvarande nummerfält mappas som java. math. BigDecimal. . : 5 Följande exempel kan vara till hjälp. Ytterligare klargörande av mitt problem. Ursprungligen sa jag att felet uppstod vid implementering av EJB-korrigering: Jag kan distribuera dem OK på applikationsservern. Felmeddelandet inträffar när jag försöker skapa en ny EJB-enhet. Det enda värdet som krävs är den primära nyckeln som jag skickar som typ BidDecimal. Om jag skapar poster direkt i databasen kan min EJB findByPrimaryKey hitta enheter OK. Men jag kan inte skapa nya via EJB. Vad verkligen förvirrar mig är varför jag kan läsa data genom anslutningen men inte skriva. Datatypen i min EJB Deployment descriptor ejb-jar-xml ltpri-key-classgt är java. math. BigDecimal gt Den jdbc-drivrutin som definieras i min application. xml är oracle. jdbc. driver. OracleDriver och url jdbc: oracle: thin. i anslutningen.

No comments:

Post a Comment