java - 有没有办法为存储到 RavenDB 的 Java bean 指定集合名称?
问题描述
我在我的应用程序中使用带有 JAVA ravendb-jvm-client 的 RavenDB,其中现有集合名称不反映 'User.java' -> 'Users' 约定。有没有办法为 java bean 指定正确的集合名称,以便 java 客户端使用它而不是自动约定?类似于 JPA 的 @Table 注释。
我知道我可以在查询中指定集合名称,例如session.query(User.class, Query.collection("custUsers"));
......但重复指定它非常冗长。
解决方案
您需要FindCollectionName
使用DocumentStore
.
在 Java 中,您可以使用setFindCollectionName
约定。
默认情况下,集合名称是实体类型名称的复数形式。例如类型的对象
Category
将属于Categories
集合。但是,如果您打算将它们分类为ProductGroups
使用以下代码:
store.getConventions().setFindCollectionName(clazz -> {
if (Category.class.isAssignableFrom(clazz)) {
return "ProductGroups";
}
return DocumentConventions.defaultGetCollectionName(clazz);
});
推荐阅读
- .net - 如何使用 VS 2017 在 .Net Framework 上创建 ASP.NET Core 应用程序
- c# - 在请求期间从资源服务器上的 Identity Server 4 身份验证服务器获取用户信息
- c - Windows 10下C程序无法连接SQLite
- android - Metal 和所有其他 c++ 平台共有哪些 c++ 数据类型
- python - 带 wtforms 的反向数字猜测烧瓶
- raspberry-pi - 我们可以使用树莓派从磨损操作系统中读取心跳数据吗
- python - 不重复的变化
- spring - 未调用 RefreshScopeRefreshedEvent 侦听器
- mysql - 用于在括号开始和结束组中分组日期的Sql查询
- swift - 使用 Alamofire 下载失败,应用程序终止