• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Entity join with different data sources?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Entity join with different data sources?


  • Subject: Re: Entity join with different data sources?
  • From: Chuck Hill <email@hidden>
  • Date: Sat, 07 Dec 2013 19:50:28 +0000
  • Thread-topic: Entity join with different data sources?

It looks like you can change this method to not call super and instead create your own JDBC2Info dictionary.

at com.webobjects.jdbcadaptor.ImpalaPlugIn.jdbcInfo(ImpalaPlugIn.java:131)

Chuck


On 2013-12-06 8:03 PM, "Gintautas Sulskus" wrote:

Can you please show us the full stack trace?  You will probably need to write a custom JDBCPlugin.  If your needs are basic it is not hard.

 Well, when I choose "Reverse Engineer" in WOLips, select table and click OK I get exception below. Bear in mind that "ImpalaPlugIn" is my JDBC plugin that simply loads standard HiveJDBCDriver. Currently it does not have any other functionality.

java.lang.RuntimeException: Failed to reverse engineer.
at org.objectstyle.wolips.eomodeler.core.sql.EOFSQLReverseEngineerFactory$ReflectionSQLReverseEngineer.reverseEngineerWithTableNamesIntoModel(EOFSQLReverseEngineerFactory.java:55)
at org.objectstyle.wolips.eomodeler.actions.ReverseEngineerAction.run(ReverseEngineerAction.java:97)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: java.lang.reflect.InvocationTargetException
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 org.objectstyle.wolips.eomodeler.core.sql.EOFSQLReverseEngineerFactory$ReflectionSQLReverseEngineer.reverseEngineerWithTableNamesIntoModel(EOFSQLReverseEngineerFactory.java:53)
... 34 more
Caused by: Method not supportedat org.apache.hive.jdbc.HiveDatabaseMetaData.supportsANSI92FullSQL(HiveDatabaseMetaData.java:805)
at com.webobjects.jdbcadaptor.JDBCContext._fetchJDBCInfo(JDBCContext.java:612)
at com.webobjects.jdbcadaptor.JDBCPlugIn.jdbcInfo(JDBCPlugIn.java:1046)
at com.webobjects.jdbcadaptor.ImpalaPlugIn.jdbcInfo(ImpalaPlugIn.java:131)
at com.webobjects.jdbcadaptor.JDBCAdaptor.typeInfo(JDBCAdaptor.java:246)
at com.webobjects.jdbcadaptor.JDBCAdaptor.isValidQualifierType(JDBCAdaptor.java:606)
at com.webobjects.jdbcadaptor.JDBCChannel.describeModelWithTableNames(JDBCChannel.java:1078)
at org.objectstyle.wolips.eomodeler.core.sql.EOFSQLReverseEngineer53.reverseEngineerWithTableNamesIntoModel(EOFSQLReverseEngineer53.java:66)
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 org.objectstyle.wolips.eomodeler.core.sql.EOFSQLReverseEngineerFactory$ReflectionSQLReverseEngineer.reverseEngineerWithTableNamesIntoModel(EOFSQLReverseEngineerFactory.java:53)
at org.objectstyle.wolips.eomodeler.actions.ReverseEngineerAction.run(ReverseEngineerAction.java:97)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)


at com.webobjects.jdbcadaptor.JDBCContext._fetchJDBCInfo(JDBCContext.java:718)
at com.webobjects.jdbcadaptor.JDBCPlugIn.jdbcInfo(JDBCPlugIn.java:1046)
at com.webobjects.jdbcadaptor.ImpalaPlugIn.jdbcInfo(ImpalaPlugIn.java:131)
at com.webobjects.jdbcadaptor.JDBCAdaptor.typeInfo(JDBCAdaptor.java:246)
at com.webobjects.jdbcadaptor.JDBCAdaptor.isValidQualifierType(JDBCAdaptor.java:606)
at com.webobjects.jdbcadaptor.JDBCChannel.describeModelWithTableNames(JDBCChannel.java:1078)
at org.objectstyle.wolips.eomodeler.core.sql.EOFSQLReverseEngineer53.reverseEngineerWithTableNamesIntoModel(EOFSQLReverseEngineer53.java:66)
... 39 more



On Tue, Dec 3, 2013 at 4:39 AM, Chuck Hill <email@hidden> wrote:
Hi Gintas,


On 2013-12-02 6:51 PM, "Gintautas Sulskus" wrote:

Thanks :)

By the way, we are thinking to use REST to communicate with HBase via Thrift. 

The natural way was to use WOLips, create entities and set adaptor to rest.
Is this the best tutorial available?
http://wiki.wocommunity.org/display/WEB/Your+First+Rest+Project#YourFirstRestProject-CreatingRESTcontrollersandroutes

Basically I have hit the wall like this guy: http://lists.apple.com/archives/webobjects-dev/2013/Mar/msg00303.html
No template. Indigo + WOLips 3.7. Any clues? I'm using 3.7 latest release update site.

Sorry, I have no idea.  Someone will have to look at the WOLips code to see why this is not working on Windows.  Maybe a bad path assumption somewhere.


In the meantime, as alternative for the above, I have done some experiments with WebObjects + EOModel + Impala/Entity JDBC drivers. 
EOModel CAN query Impala/Hive for a list of tables. However, there is no reverse engineering support so I have created an entity manually that maps to the table on Hive. However, whenever I try to fetch all records from that entity it gives me an exception:
Method not supported at org.apache.hive.jdbc.HiveDatabaseMetaData.supportsANSI92FullSQL(HiveDatabaseMetaData.java:805)

Well, that's true and correct. However, I will need only the most basic subset from ANSI92 that is supported by Impala. Is there any way to overcome this check? 
Will I have to extend these classes?

Can you please show us the full stack trace?  You will probably need to write a custom JDBCPlugin.  If your needs are basic it is not hard.


Chuck




On Mon, Nov 25, 2013 at 7:10 PM, Chuck Hill <email@hidden> wrote:
Hi,

On 2013-11-25 3:38 AM, "Gintautas Sulskus" wrote:

Thank you for a very quick response.

Each model is specific to one database, you will need to have two models.   You can have as many models as you want in a project.  You can create a model group in Eclipse to hold both models so that you can make relationships between them.

Can I use relationship to make "virtual" joins, that do not exist in the database? E.g. I would like to express table_1 and table_2 as a virtual_table_3 that exists only in EOModel. Then I would like to query and perform dml operations on that virtual table. 

No, you can't do that.  They get fetched as disjoint Java objects.


Or should I express only the relationships that are present in the database?

Yes.  I will also note that this is not a commonly used feature of EOF, so you may run into bugs.


Chuck


ERRest.  There are multiple presentations in the WOCommunity.

Found it! Thanks a lot :)

Cheers,
Gintas 


On Mon, Nov 25, 2013 at 5:39 AM, Chuck Hill <email@hidden> wrote:

On 2013-11-24 7:40 PM, "Gintautas Sulskus" wrote:

Hello,

Just wanted to double check: I am trying to create an EOModel (in WOLips) that would use two entities from different databases. Is it possible to achieve this? I assume the answer is NO.

Each model is specific to one database, you will need to have two models.   You can have as many models as you want in a project.  You can create a model group in Eclipse to hold both models so that you can make relationships between them.

Chuck



Also, I was looking for any information on REST adaptor and could not find anything. Do you have any references to this?

Much appreciated!

Best Regards,
Gintautas



--
Best Regards,
Gintautas Sulskus



--
Best Regards,
Gintautas Sulskus



--
Best Regards,
Gintautas Sulskus
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Re: Entity join with different data sources? (From: Gintautas Sulskus <email@hidden>)
 >Re: Entity join with different data sources? (From: Chuck Hill <email@hidden>)
 >Re: Entity join with different data sources? (From: Gintautas Sulskus <email@hidden>)

  • Prev by Date: Re: Inheritance ERRest
  • Next by Date: Qualifier against target entity?
  • Previous by thread: Re: Entity join with different data sources?
  • Next by thread: WOWODC 2014: Registration is now open!
  • Index(es):
    • Date
    • Thread