HibernateD and DDBC - ORM and DB abstraction layer for D

Jacob Carlborg doob at me.com
Thu Apr 4 02:01:15 PDT 2013


On 2013-04-03 21:07, Vadim Lopatin wrote:
> I don't see what to simplify in markup like this:
>
>      @Entity
>      class User {
>
>          @Generated
>          long id;
>
>          @Column
>          string name;
>
>          @ManyToOne
>          Customer customer;
>
>          @ManyToMany
>          LazyCollection!Role roles;
>      }
>
> Which translates to table definitions like
> CREATE TABLE user (id bigint not null primary key auto_increment, name
> varchar(255), customer_fk bigint foreign key references customer(id));
> CREATE TABLE user_roles (user_fk bigint not null foreign key references
> user(id), role_fk int not null foreign key references role(id), primary
> key(user_fk, role_fk);
> ...

Is the attributes necessary at all? I would just go with:

class User
{
     long id; // always assume auto increment, primary key, not null and 
so on
     string name;
     Customer customer; // infer @ManyToOne
     @ManyToMany LazyCollection!Role roles; // I guess this cannot be 
inferred
     LazyCollection!Foo foos; // infer @OneToMany
}

Perhaps for primitive types you could have:

class User
{
     Long id;
     String name;
     Int foo;
}

Note the capital letters.

-- 
/Jacob Carlborg


More information about the Digitalmars-d-announce mailing list