Just made a new release of hrorm. Actually pretty big changes, though upgrades should be completely clean.
I finally changed how the various dao builder classes work. There’s now an abstract base class. There’s some ridiculous casting and type-system abuse, but that’s the nature of this sort of thing in Java. Anyway, there’s much less repeated code now.
The bigger change is that I added code to allow configuration to avoid the N+1 query problem. For my purposes, where I use hrorm, I have not had to care, but it felt like the right thing to do, so I did it.
But, it’s not truly done yet. It does not work yet for joined entities. The documentation reflects that. I should work on this, but I want to think about it for a while, at least. And maybe I’ll never do it. Or at least, not until a user shows up who cares.
It’s probably a fair amount of work. And there are still some ugly parts left in the code from supporting better child selection in the base case. And frankly, the whole thing could use more testing.
Frameworks do become complicated. And I just cannot be bothered to right a test for every possible scenario: immutable model with a four generation tree and joins or something like that. If someone shows up and wants to complain, well, that’s different.