Hello!
I've started implemetation of ORM in D, with annotations and
interfaces similar to Hibernate.
As DB abstraction layer I wrote DDBC - library with interface
similar to JDBC. Only MySQL driver is implemented. PostgreSQL -
in progress.
Project is hosted on SourceForge:
https://sourceforge.net/p/hibernated/wiki/HibernateD/ License is
Boost
HibernateD collects metadata from classes annotated with
Hibernate-like UDAs.
Simple properties of supported: you can annotate fields, D
properties or getter+setter pairs in your class, of types string,
byte, short, int, long, ubyte, ushort, uint, ulong, byte[],
ubyte[], DateTime, Date, TimeOfDay; for non-nullable types to
support Null value use Nullable! template.
@Embedded entities supported - you can embed properties from
@Embeddable object to @Entity's table.
@OneToOne, @OneToMany, @ManyToOne, @ManyToMany relations are
supported. You can use Lazy! and LazyCollection! to support lazy
loading of aggregates.
You can query DB using subset of HQL (Hibernate Query Language).
Look at project wiki and unittests for more info.