ODB C++ ORM 1.1.0 adds support for containers, relationships, composite values

I am pleased to announce the release of ODB 1.1.0.

ODB is an open-source object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any of the mapping code.

Major new features in this release:

* Support for storing containers in the database, for example:

1
2
3
4
5
6
7
8
    #pragma db object
    class person
    {
      ...

      std::set<std::string> emails_;
    };
                                                                


* Support for unidirectional and bidirectional object relationships, including lazy loading. For example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    #pragma db object
    class employer
    {
      ...

      #pragma db inverse(employer_)
      std::vector<lazy_weak_ptr<employee> > employees_;
    };

    #pragma db object
    class employee
    {
      ...

      shared_ptr<employer> employer_;
    };
                                                                


* Support for composite value types, for example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    #pragma db value
    class name
    {
      ...

      std::string first_;
      std::string last_;
    };

    #pragma db object
    class person
    {
      ...

      name name_;
    };
                                                                


* Support for optional object cache (session).

* Support for native SQL statement execution.

* Support for customization of object pointers that allows you to use smart pointers to return, pass, and cache persistent objects.

A more detailed discussion of the major new features can be found in the following blog post:

http://www.codesynthesis.com/~boris/blog/2011/01/26/odb-1-1-0-released/

For the complete list of new features in this version see the official release announcement:

http://www.codesynthesis.com/pipermail/odb-announcements/2011/000001.html

ODB is written in portable C++ and you should be able to use it with any modern C++ compiler. In particular, we have tested this release on GNU/Linux (x86/x86-64), Windows (x86/x86-64), Mac OS X, and Solaris (x86/x86-64/SPARC) with GNU g++ 4.2.x-4.5.x, MS Visual C++ 2008 and 2010, and Sun Studio 12.

More information, documentation, source code, and pre-compiled binaries are available from:

http://www.codesynthesis.com/products/odb/
Topic archived. No new replies allowed.