Re: [appengine-java] Re: Periodically download backup of datastore?
That would be by far the easiest solution +1 from me here too are there any other solutions around here in the mean time? Thanks Dominik -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Copy production datastore to local_db.bin?
To answer my own question about exporting keys, i found the solution in following thread http://groups.google.com/group/google-appengine-java/browse_thread/thread/4282ec1ecf8b9171/da12ef2ba4f2f172?lnk=gstq=bulkloader+dump+and+restore#da12ef2ba4f2f172 HTH Dominik -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Periodically download backup of datastore?
Hi there, I finally was able with the great help from Ikai to download the data of my application as you can read in the following thread http://groups.google.com/group/google-appengine-java/browse_thread/thread/b86c5304ca2b4717/7cb17c653e319f8c?lnk=gstq=local.bin+copy#7cb17c653e319f8c now I was wondering what possibilities there are to have a script or something running on my computer that would automatically and periodically trigger that download in order to backup the data of the datastore? Does anybody already have experience with that? any script out there already? Thanks for any hints you can give me Dominik -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Copy production datastore to local_db.bin?
/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2788, in output_entities for entity in entity_generator) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2788, in genexpr for entity in entity_generator) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2769, in __SerializeEntity encoding = self.__EncodeEntity(entity) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2757, in __EncodeEntity writer.writerow(self.__ExtractProperties(entity)) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2738, in __ExtractProperties encoding.append(fn(entity[name])) File exporter.py, line 30, in lambda ('brand', lambda x: x.decode('utf-8'), None), AttributeError: 'NoneType' object has no attribute 'decode' Do you have any idea of what that could be? Thanks again for your help. Dominik Interesting. Do you have some unicode characters in any fields? There's a snippet on the bulk loader page about how to handle these characters in your Importer: http://code.google.com/appengine/docs/python/tools/uploadingdata.html import datetime from google.appengine.ext import db from google.appengine.tools import bulkloader import models class AlbumLoader(bulkloader.Loader): def __init__(self): bulkloader.Loader.__init__(self, 'Album', [('title', lambda x: x.decode('utf-8')), ('artist', lambda x: x.decode('utf-8')), ('publication_date', lambda x: datetime.datetime.strptime(x, '%m/%d/%Y').date()), ('length_in_minutes', int) ]) loaders = [AlbumLoader] Your error may be caused by UTF-8/ASCII incompatibilities, and this is where I would start looking. On Wed, Dec 9, 2009 at 8:26 PM, Dominik Steiner dominik.j.stei...@googlemail.com wrote: Hi Ikai, I followed the instructions in the cook book for the python uploader/ downloader in order to be able to download and backup the data of my java application. As already posted in the cook book article, I got the following situation: I would love to be able to download data in order to backup the data of my application and I tried your steps. One thing that didn't work for me was the line appcfg.py --server=python.latest.appid.appspot.com download_data exporter --filename=data.csv --kind=Thing --config_file=exporter/ thing_exporter.py but had to write appcfg.py --server=python.latest.xelavos.appspot.com download_data -- filename=data.csv --kind=Thing --config_file=exporter/ thing_exporter.py path/to/my/pythondirectory Then after being able to launch the exporter i got the following error after a while of downloading .[INFO ] Product: No descending index on __key__, performing serial download . Traceback (most recent call last): File /usr/local/bin/appcfg.py, line 60, in run_file(__file__, globals()) File /usr/local/bin/appcfg.py, line 57, in run_file execfile(script_path, globals_) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2548, in main(sys.argv) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2539, in main result = AppCfgApp(argv).Run() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 1640, in Run self.action(self) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2427, in __call__ return method() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2293, in PerformDownload run_fn(args) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2215
Re: [appengine-java] Re: Copy production datastore to local_db.bin?
Thanks Ikai again for the fast reply. I tried the following ('brand', lambda x: x.decode('utf-8'), ), so changing the default value from None to but that didn't help Then tried the following ('brand', if x is not None: lambda x: x.decode('utf-8'), ), but this threw a syntax error. Is there anyway to check that the value is not null in order to decode it? Thanks Dominik It's basically the equivalent of a Null Pointer exception. This syntax: lambda x: x.someMethod() Is an inline anonymous function call. If x is None as opposed to blank String, you will not be able to call methods on it. On Thu, Dec 10, 2009 at 1:45 PM, Dominik Steiner dominik.j.stei...@googlemail.com wrote: Thanks Ikai for the fast response, yes, some unicode characters might be the issue here as my data is in Spanish. I tried your suggestion and now have an exporter.py that looks like this from google.appengine.ext import db class Product(db.Model): userId = db.StringProperty() name = db.StringProperty() shop = db.StringProperty() brand = db.StringProperty() model = db.StringProperty() contact = db.StringProperty() imageId = db.StringProperty() userNickName = db.StringProperty() price = db.FloatProperty() registeredDate = db.DateProperty() validUntilDate = db.DateProperty() ratingCount = db.IntegerProperty() ratingTotal = db.IntegerProperty() rating = db.IntegerProperty() commentCount = db.IntegerProperty() description = db.TextProperty() from google.appengine.ext import db from google.appengine.tools import bulkloader class ProductExporter(bulkloader.Exporter): def __init__(self): bulkloader.Exporter.__init__(self, 'Product', [('name', lambda x: x.decode('utf-8'), None), ('userId', str, None), ('shop', lambda x: x.decode('utf-8'), None). ('brand', lambda x: x.decode('utf-8'), None), ('model', lambda x: x.decode('utf-8'), None), ('contact', lambda x: x.decode('utf-8'), None), ('imageId', str, None), ('userNickName', lambda x: x.decode('utf-8'), None), ('price', str, None), ('registeredDate', str, None), ('validUntilDate', str, None), ('ratingCount', str, None), ('ratingTotal', str, None), ('rating', str, None), ('commentCount', str, None), ('description', lambda x: x.decode('utf-8'), None) ]) exporters = [ProductExporter] and I now get the following error (but at least it seems that it had been downloading for a while before throwing that error) Traceback (most recent call last): File /usr/local/bin/appcfg.py, line 60, in module run_file(__file__, globals()) File /usr/local/bin/appcfg.py, line 57, in run_file execfile(script_path, globals_) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2548, in module main(sys.argv) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2539, in main result = AppCfgApp(argv).Run() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 1640, in Run self.action(self) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2427, in __call__ return method() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2293, in PerformDownload run_fn(args) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2215, in RunBulkloader sys.exit(bulkloader.Run(arg_dict)) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 3894, in Run return _PerformBulkload(arg_dict) File /Applications
[appengine-java] Re: Copy production datastore to local_db.bin?
Hi Ikai, I followed the instructions in the cook book for the python uploader/ downloader in order to be able to download and backup the data of my java application. As already posted in the cook book article, I got the following situation: I would love to be able to download data in order to backup the data of my application and I tried your steps. One thing that didn't work for me was the line appcfg.py --server=python.latest.appid.appspot.com download_data exporter --filename=data.csv --kind=Thing --config_file=exporter/ thing_exporter.py but had to write appcfg.py --server=python.latest.xelavos.appspot.com download_data -- filename=data.csv --kind=Thing --config_file=exporter/ thing_exporter.py path/to/my/pythondirectory Then after being able to launch the exporter i got the following error after a while of downloading .[INFO ] Product: No descending index on __key__, performing serial download . Traceback (most recent call last): File /usr/local/bin/appcfg.py, line 60, in run_file(__file__, globals()) File /usr/local/bin/appcfg.py, line 57, in run_file execfile(script_path, globals_) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2548, in main(sys.argv) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2539, in main result = AppCfgApp(argv).Run() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 1640, in Run self.action(self) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2427, in __call__ return method() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2293, in PerformDownload run_fn(args) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/appcfg.py, line 2215, in RunBulkloader sys.exit(bulkloader.Run(arg_dict)) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 3894, in Run return _PerformBulkload(arg_dict) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 3800, in _PerformBulkload return_code = app.Run() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 3158, in Run self.progress_thread.WorkFinished() File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2207, in WorkFinished exporter.output_entities(self.result_db.AllEntities()) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2788, in output_entities for entity in entity_generator) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2788, in for entity in entity_generator) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2769, in __SerializeEntity encoding = self.__EncodeEntity(entity) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2757, in __EncodeEntity writer.writerow(self.__ExtractProperties(entity)) File /Applications/GoogleAppEngineLauncher.app/Contents/Resources/ GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ google/appengine/tools/bulkloader.py, line 2738, in __ExtractProperties encoding.append(fn(entity[name])) UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 7: ordinal not in range(128) Do you know what this error means and how i can fix it? Thanks for any help Dominik -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to
[appengine-java] Re: Any single entity or entity group can only be updated about five times a second.
Tim, you might find some information related to that in this thread http://groups.google.com/group/google-appengine-java/browse_thread/thread/7ce9ce5c89f990f0/fd37d79492099ec6 HTH Dominik On 1 Dez., 23:42, Tim Cooper tco...@gmail.com wrote: Can anyone give me a clearer understanding of what an update is, in the statement: Any single entity or entity group can only be updated about five times a second. What level is an update? Is it a single update to a single field? Is it a set of field updates to a single Java object? Is it a single transaction, updating a single entity group? I have written my application expecting a update to mean a set of updates to a single entity group. In one XML request, I am populating my datastore with 900 child entities, all within a single entity group. The total amount of data involved is about 300K. I thought that this size would be quite manageable for AppEngine, and I wanted transactions to be atomic. However, it appears that this means 900 writes and so this call times out. The frustrating thing was that my application worked perfectly in the development environment. I thought that that was a good indication that it would work when deployed. It has been difficult to debug it using frequent deploys. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: TaskQueue API don't work in Unit Tests
yes, i can confirm that i saw the same issue here in my unit test, where i then had to mock out the task queue calls in order to make it work, but would be nicer if it would run out of the box On Oct 28, 10:08 am, Patrizio Munzi patrizio.mu...@eris4.com wrote: Hi all, I'm getting the following exception using Task Queues in Unit Tests: -- com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'taskqueue' or call 'Add()' was not found. at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:77) at com.google.appengine.api.labs.taskqueue.QueueApiHelper.makeSyncCall(QueueApiHelper.java:23) at com.google.appengine.api.labs.taskqueue.QueueImpl.add(QueueImpl.java:188) at com.eris4.warp4.callfriends.server.taskqueue.MultiOperationsTask.enqueue(MultiOperationsTask.java:73) at com.eris4.warp4.callfriends.server.taskqueue.MultiOperationsTask.enqueue(MultiOperationsTask.java:66) at com.eris4.warp4.callfriends.server.taskqueue.MultiOperationsTask.enqueue(MultiOperationsTask.java:66) at com.eris4.warp4.callfriends.unittest.server.taskqueue.MultiOperationsTaskTest.testOver1BytesTaskSize(MultiOperationsTaskTest.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) - My classpath already contains the jars: - appengine-local-runtime.jar - appengine-api-stubs.jar - appengine-api-labs.jar Regards, Patrizio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Re: Performance difference between local dev server and App Engine
Hi leszek, when you say that first the data is kept in memory and from time to time persisted to disk, is there a way to trigger that the local development server should save it to disk immediately? The problem is that we are using a GAE app only locally (no internet access) and have sometimes seen strange save issue, where adding new data supposedly has work and on the next start it is not there anymore. (so that's why I guess that your explanantion could be the reason for that - but I would say that this only happened 10% of the time) Thanks for any help in advance. Dominik On Oct 26, 4:26 am, leszek leszek.ptokar...@gmail.com wrote: The development server contains local implementation of low-level datastore operations. It is something kept in memory and from time to time persisted to disk. In production environment (app engine) the low- level engine is Google's Big Table. So you cannot compare performance between local and production environment - the underlying technology is completely different. The development server is only to make your solution running - to optimize and orchestrate it you need the app engine (production) environment. So I think that finding bottlenecks in your application and some refactoring is necessary if current efficiency is not enough. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Re: java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/CompositeIndexManager
Hi, I got the same error, can you try adding the following jars to your classpath appengine-api-stubs.jar appengine-api.jar appengine-local-runtime.jar HTH Dominik On Oct 20, 7:21 am, stanlick stanl...@gmail.com wrote: I have configured my test environment according to the notes found here. http://code.google.com/appengine/docs/java/howto/unittesting.html However, when I run my unit test, I am receiving java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/ CompositeIndexManager. Is there possibly another jar I need on my path? Peace, Scott --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Queries in 1.2.5 don't retrieve com.google.appengine.api.datastore.Text data anymore?
Hi, I have data objects stored in the datastore that have a propery of type com.google.appengine.api.datastore.Text. In 1.2.2 this was working without problems and querying the data objects would also retrieve the property with type com.google.appengine.api.datastore.Text, but moving to 1.2.5 this doesn't work anymore and the property of type com.google.appengine.api.datastore.Text is returning always as null. This problem also occurs for property of type Blob. Anybody has a clue if this is a bug or a feature? Thanks. Dominik --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Re: Queries in 1.2.5 don't retrieve com.google.appengine.api.datastore.Text data anymore?
Hi rick, thank you very much for the fast answer, this was very helpful. I didn't change my code, as i could switch locally in eclipse from GA 1.2.2 to 1.2.5 without doing any code changes and in 1.2.2 it would retrieve the properties of type text or blob, in 1.2.5 it wouldn't. Thanks to your link the solution was then to add @Persistent(defaultFetchGroup=true) to the fields with text or blob. For me this is still a breaking change from 1.2.2 to 1.2.5, I think this should be clearly documented. Thanks again for your post. Dominik Did you change your code ? Text and Blod are not part of the default fetch group. Look at http://www.datanucleus.org/products/accessplatform/jdo/fetchgroup.html --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---
[appengine-java] Query by using inheritance?
Hi there, I saw that Google App Engine for Python is using the PolyModel class in order to query for objects using inheritance. Is there something similar available for Java? So to say, I have a class AbstractModel and two classes FirstModel and SecondModel that extend/implement the AbstractModel and would like to be able to query Select * from AbstractModel Is that possible? Thanks Dominik P.S. if that wouldn't be possible in Java is it possible to use Python for the Google App Engine in Java? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~--~~~~--~~--~--~---