It would be beneficial to have an annotation to generate _key (and therefore _id) values based on some criteria defined in there. Take Couchbase implementation for example - it's fairly simple to use, fairly well built and makes the schema very flexible without a necessity to duplicate code.