This wouldn't work with AutoValue for the exact reason you point out. ActiveAndroid could update their library to work with standard property setter/getters, but currently the @Column
annotation can only be applied to fields, not methods.
There is also the issue of your model objects having to subclass their abstract Model
class. This shouldn't cause a problem, but does muddy the implementation quite a bit.
You might want to check out SQLDelight from the nice people as Square. As opposed to the ActiveAndroid style create-sqlite-from-java-objects approach, it takes the reverse create-java-objects-from-sql. It's up to you whether that's a benefit or a drawback, but it works quite nicely and plays well with AutoValue.