Prinzessin
I'm new here

XML Schema einer externen Datenbank mit biginteger Feld erweitern

Jump to solution

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:

db_struktur_mysql.gif

Leider habe ich kein Beispiel für diesen Typ dazu gefunden.

Mein XML-Schema zu der View sieht im CMS so aus:

xml_schema.gif

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... 😞 )

0 Kudos
1 Solution

Accepted Solutions

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"/>

View solution in original post

0 Kudos
6 Replies
Peter_Jodeleit
Crownpeak employee

Funktioniert es mit "java.langmath.BigInteger"?

[EDIT: Typo korrigiert, siehe Folge-Posts]

Peter
0 Kudos

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"/>

0 Kudos

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)

0 Kudos

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

0 Kudos

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"/>

0 Kudos