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/