On Sunday, 26 April 2015 at 01:03:12 UTC, Rikki Cattermole wrote:

I'm personally moving towards a DSL.

unittest {
        auto myQuery = """
using webdev.base.orm.query.parser.defs # allow for D class name instead of table name
; # end of \"sentence\"

from MyModel
where key == $0
as simple
# as index # but only one can be defined, two in total internal
; # end of \"sentence\"

from MyModel
where value contains $0
as complex
# as index # but only one can be defined, two in total internal
; # end of \"sentence\"

""".query;

        MyModel[] gotValues = myQuery.simple("test");
        gotValues = myQuery.perform("complex", "another");
}

Pros:
- Runtime reloadability
- Runtime composability
- More flexible
Cons:
- It's a string

Can Pegged be usefully applied to implement this?

Incidentally, it seems that although Hibernated is very nice, there is still work to be done. Eg I would like to insert 10 million rows, and it seems like a transaction would be the best way of doing so, but it's not yet supported. No big deal since the schema is very simple and I can do it by hand, but it would be nice to have at some point. (I looked at your own ORM, but keeping it in memory won't work for me).

Reply via email to