Обычно я использую этот подход при создании экземпляра объекта запроса:
Query<Product> query = datastore.createQuery(Product.class);
Но Morphia позволяет вам также передавать имя коллекции при создании экземпляра объекта запроса, который будет выглядеть следующим образом:
Query<Product> query = datastore.createQuery(COLLECTION_NAME, Product.class);
Я не могу понять, почему мы должны явно передавать имя Коллекции при создании объекта запроса?
Когда мы создаем модель, в этом случае в классе Product мы уже связываем имя коллекции под аннотацией Entity
:
@Entity(value = "product", noClassnameStored = true)
class Product {
// model attributes declared here
}
Одна из причин, по которой я могу придумать, заключается в том, что если одна и та же модель используется в нескольких коллекциях, нам может потребоваться передать имя коллекции, но даже если это так, является ли это хорошей практикой и соответствует ли она рекомендациям ORM? Пожалуйста, помогите мне понять.