AuDAO News

AuDAO - SQL and Java DAO Generator

AuDAO 1.7 - HSQLDB

(last modified on April 13, 2012 16:07:19)

AuDAO can generate SQL script and Java DAO layer for HSQLDB engine.

We also updated AuDAO to use and run on Google App Engine SDK 1.6.1. The GWT serialization code was compiled and tested using GWT 2.4.0.

The full release notes you can find here.

AuDAO 1.6 - Misc Improvements

(last modified on February 19, 2011 00:20:42)

Several improvements were packed into this release.

The biggest one is the possibility to generate finder methods which return List instead of array. For more information see array or list documentation.

Another improvement is mapping of Java enumerations to String / character types in databases. The details you can find here.

We also updated AuDAO to use and run on Google App Engine SDK 1.4.2. The GWT serialization code was compiled and tested using GWT 2.2.0.

The full release notes you can find here.

AuDAO 1.5 - Open Source

(last modified on June 10, 2010 13:50:24)

AuDAO is fully open-sourced now !

As we promised last time, AuDAO is an open-source project now. The sources and as well the binary distributions can be downloaded from http://code.google.com/p/audao/, although the official site is still audao.spoledge.com.

As of the new features:
the biggest improvement is enabling caches for GAE.

We also introduced a new library for administrators - Extended GQL Parser, which brings possibility to execute not only SELECT queries, but also INSERT, UPDATE and DELETE statements with almost same manner as in standard SQL databases.

We also updated AuDAO to use and run on Google App Engine SDK 1.3.4.

The full release notes you can find here.

AuDAO 1.4 - GAE + GWT

(last modified on May 5, 2010 12:30:31)

The standalone binary version is available for free now !

We released the latest version of AuDAO for free. This is the first step of moving the AuDAO project towards open-source projects. You can enjoy to use AuDAO on your computer locally. There exist no limitiations concerning the input XML or number of entities. Using of the standalone version will speed-up your development.

To obtain the full AuDAO standalone version, please go to the download page.

As of the new features: you can use new column flag transient to save you disk-space (when saving DTOs into a file or into GAE's memcache), or to save a bandwidth (when sending DTOs ove GWT serialization stream):

    <column name="words">
      <type class="String">List</type>
      <transient/>
    </column>

    <column name="geo_tiles">
      <type class="String">List</type>
      <transient io="false" gwt="true"/>
    </column> 

We also updated AuDAO to use and run on Google App Engine SDK 1.3.3.1.

The full release notes you can find here.

AuDAO 1.3 - GAE + GWT

(last modified on March 26, 2010 23:55:26)

Now we support GAE+GWT projects. Fetch DTOs with GeoPts and send them to the client directly. Sending from client to server and storing to the datastore is also possible !

If you want to control your used space in the GAE datastore, then you can use new column options gae/@empty and gae/@unindexed:

    <column name="geopt_type">
      <type class="gae:GeoPt">Serializable</type>
      <gae unindexed="true"/>
    </column>

    <column name="description">
      <type max-length="64">String</type>
      <gae empty="true"/>
    </column> 

We also updated AuDAO to use and run on Google App Engine SDK 1.3.2.

The full release notes you can find here

AuDAO 1.2 - GAE Classes

(last modified on February 25, 2010 23:55:35)

Now we support all GAE core types including Key, GeoPt or User. Also Lists can contain these types.

So you can simply use these types in your DTOs and DAOs - just declare them in the XML:

    <column name="key_type">
      <type class="gae:Key">Serializable</type>
    </column>

    <column name="geopt_type">
      <type class="gae:GeoPt">Serializable</type>
    </column>

    <column name="user_type">
      <type class="gae:User">Serializable</type>
    </column>


    <column name="key_list">
      <type class="gae:Key">List</type>
    </column>

    <column name="geopt_list">
      <type class="gae:GeoPt">List</type>
    </column>

    <column name="user_list">
      <type class="gae:User">List</type>
    </column>

    <column name="native_list">
      <type class="java.util.List">Serializable</type>
    </column>

    <column name="anonymous_list">
      <type>List</type>
    </column>
You can search by them - the finder methods support both single element parameter and a collection/list parameter like the following:
    <indexes>

      <index name="inx_geopt">
        <columns>
          <column name="geopt_type"/>
        </columns>
      </index>

      <index name="inx_geopt_list">
        <columns>
          <column name="geopt_list"/>
        </columns>
      </index>

    </indexes>

    <methods>

      <find name="singleEqual">
        <index name="inx_geopt"/>
      </find>

      <find name="singleIn">
        <condition>
          <query>geoptType IN :1</query>
          <params>
            <column name="geopt_type" list="true"/>
          </params>
        </condition>
      </find>

      <find name="listContainsAllOf">
        <index name="inx_geopt_list" list="true"/>
      </find>

      <find name="listContainAtLeastOne">
        <condition>
          <query>geoptList IN :1</query>
          <params>
            <column name="geopt_type" list="true"/>
          </params>
        </condition>
      </find>

    </methods> 
will produce these DAO methods:
    public MyEntity[] findSingleEqual( GeoPt geoptType );
    public MyEntity[] findSingleIn( List<GeoPt> geoptType );
    public MyEntity[] findListContainsAllOf( List<GeoPt> geoptList );
    public MyEntity[] findListContainsAtLeastOne( List<GeoPt> geoptList ); 

See more information about the GAE types in the documentation.

The full release notes you can find here

AuDAO 1.1 - Blobs and Lists

(last modified on February 12, 2010 09:30:35)

Three new types: byte[], Serializable and List allows to work with binary objects natively as Java allows.

See more information about the new types in the documentation.

The full release notes you can find here

AuDAO 1.0 is out !

(last modified on February 1, 2010 16:32:04)

Today we released the first official version of AuDAO tool.

The GAE implementation now supports dynamic queries - by parsing GQL conditions. The dynamic GQL parser supports all features except the "!=" and "IN" operators.

We also release open-source libraries:

  • audao-runtime.jar - the JDBC and GAE utilities used by the generated DAO classes
  • audao-runtime-gql.jar - the runtime GQL parser which converts GQL statements to GAE low-level API Query on the fly.
The libraries are released under Apache 2 License and you can download it here.

The full release notes you can find here

GAE implementation rewritten

(last modified on January 14, 2010 14:11:55)

DAO implementation for Google App Engine uses low-level Datastore API now !

The first implementation for GAE used JDO and it was a little bit tricky. Now we use low-level Datastore API, so the generated code is faste, more powerfull and more stable.

Developers can still use the old version as an option (the GAE/JDO target was renamed to gaejdo, and the target gae now stands for the low-level implementation), but we do not plan any enhancements of the GAE/JDO implementation in future. On the other hand, improvements of the new GAE low-level API implementation are in progress !

Updated Google App Engine SDK to 1.3.0

(last modified on December 15, 2009 16:49:56)

We updated AuDAO to use and run on Google App Engine SDK 1.3.0.

Updated Google App Engine SDK to 1.2.8

(last modified on December 4, 2009 17:23:14)

We updated AuDAO to use and run on Google App Engine SDK 1.2.8.

Online Generátor

Vyzkoušejte zadarmo náš online DAO generátor.

Vytvořte konfigurační XML soubor a získejte zadarmo vygenerované SQL skripty a Java třídy !

GQL Parser

Stáhněte si zdrojové či binární soubory GQL parseru.

Query q =
 new GqlDynamic()
  .parseQuery(
   "SELECT * FROM Ent");
Plná podpora GQL. Více...