Search the FirstSpirit Knowledge Base
Hallo,
ich habe eine externe Datenbank (MySQL) an das CMS (Version 5.0.318.57504) angebunden.
Einige Views aus der externen Datenbank habe ich bereits selbst durch die Bearbeitung des XML-Schemas im CMS ergänzt.
Nun muss ich eine View (Tabelle im CMS) um ein neues Feld (Typ biginteger) erweitern.
Hier die Struktur des Views in der MySQL-Datenbank:
Leider habe ich kein Beispiel für diesen Typ dazu gefunden.
Mein XML-Schema zu der View sieht im CMS so aus:
Wie kann ich das biginteger-Feld hier aufnehmen?
Meine bisherigen Versuche waren diese:
1. <xs:element dbName="mdm_id" javaType="java.lang.Integer" length="255" name="mdm_id" nullable="1" type="xs:integer"/>
2. <xs:element dbName="mdm_id" javaType="java.lang.String" length="255" name="mdm_id" nullable="1" type="xs:string"/>
(beides ohne Erfolg... 😞 )
Dankeschön, im View war ein Fehler, der nun behoben wurde.
So hat die Einbindung nun geklappt:
<xs:element dbName="mdm_id" javaType="java.math.BigInteger" length="255" name="mdm_id" nullable="1" type="xs:integer"/>
Funktioniert es mit "java.langmath.BigInteger"?
[EDIT: Typo korrigiert, siehe Folge-Posts]
Hallo,
also so funktioniert es nicht:
<xs:element dbName="mdm_id" javaType="java.lang.BigInteger" length="11" name="mdm_id" nullable="1" type="xs:biginteger"/>
und so auch nicht:
<xs:element dbName="mdm_id" javaType="java.lang.BigInteger" length="11" name="mdm_id" nullable="1" type="xs:integer"/>
Hallo Yvonne,
was ist mit "java.math.BigInteger" ?
ggfls. hilft noch das MySQL-Type Mapping weiter:
http://dev.mysql.com/doc/refman/5.1/de/connector-j-reference-type-conversions.html
Freundliche Grüße
Ismail
Hallo,
so hat es nicht funktioniert:
<xs:element dbName="mdm_id" javaType="java.math.BigInteger" length="255" name="mdm_id" nullable="1" type="xs:biginteger"/>
und so konnte ich zumindest das Feld in das XML-Schema aufnehmen:
<xs:element dbName="mdm_id" javaType="java.math.BigInteger" length="255" name="mdm_id" nullable="1" type="xs:integer"/>
Als ich allerdings das Mapping angepasst habe um die Inhalte der Datenquelle anzusehen, kam diese Fehlermeldung:
Client Version: 5.0.318.57504
Java Version: 1.6.0_37 Sun Microsystems Inc.
FSVersion=5.0.318.57504#3102;JDK=1.6.0_37 32bit Sun Microsystems Inc.;OS=Windows 7 6.1 x86;Date=26.07.2013 14:12:15
de.espirit.or.QueryException: Error code: 1054, state: 42S22
at de.espirit.or.impl.AbstractSessionHandler.fetchByKeys(AbstractSessionHandler.java:220)
at de.espirit.firstspirit.content.ContentManagerImpl.fetchByKeys(ContentManagerImpl.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:95)
at de.espirit.firstspirit.server.io.handler.ManagerCall.handle(ManagerCall.java:69)
at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:578)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:545)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:37)
Caused by: java.sql.SQLException: Unknown column 'mdm_id' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2309)
at de.espirit.or.impl.AbstractSessionHandler.fetchByKeys(AbstractSessionHandler.java:189)
at de.espirit.firstspirit.content.ContentManagerImpl.fetchByKeys(ContentManagerImpl.java:540)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)
at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:95)
at de.espirit.firstspirit.server.io.handler.ManagerCall.handle(ManagerCall.java:69)
at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)
at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:578)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:545)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:372)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:55)
at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:52)
at de.espirit.firstspirit.server.$Proxy51.fetchByKeys(Unknown Source)
at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.fetchByKeys(SessionHandlerImpl.java:78)
at de.espirit.or.impl.AbstractSession$EntityListImpl.fetch(AbstractSession.java:1074)
at de.espirit.or.impl.AbstractSession$EntityListImpl.fetch(AbstractSession.java:1048)
at de.espirit.common.util.AbstractLazyList.get(AbstractLazyList.java:156)
at de.espirit.firstspirit.client.gui.tree.store.contentstore.ContentTable$SelectorTask.run(ContentTable.java:1419)
at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1928)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Hallo,
Caused by: java.sql.SQLException: Unknown column 'mdm_id' in 'field list'
Eine mögliche Lösung:
http://exceptionsandsolutions.blogspot.de/2010/09/javasqlsqlexception-unknown-column.html
Freundliche Grüße
Ismail
Dankeschön, im View war ein Fehler, der nun behoben wurde.
So hat die Einbindung nun geklappt:
<xs:element dbName="mdm_id" javaType="java.math.BigInteger" length="255" name="mdm_id" nullable="1" type="xs:integer"/>