问题标签 [morphia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何以编程方式从文件中的值实例化动态加载的类?
我对 Java 的反射 API 有基本的了解——因此,这不仅是一个如何实现的问题,还是一个是否可行以及我是否正在寻找最佳解决方案的问题。
我们正在对多个相互关联的项目进行一些验收测试;这些项目中的每一个都使用内部抽象 API 从 MongoDB 存储中检索数据。为了便于进行此测试,每个组件都需要一些预加载的数据才能在数据库中使用。
我正在构建一个命令行工具来接受 DTO(预编译类二进制文件),用于使用 morphia ORM 库加载多个实例。我希望我们团队的每个成员都能够运行通过 cli 传入他们的 DTO(以 jar 或目录形式)的生成器,以及用于实例化所需记录数量的文件(csv 或其他)。
我的类加载工作正常URLClassLoader
。现在我正在尝试使用文件中的数据实例化此类的一个实例。
这可能吗?序列化对象会是更好的方法吗?
java - 玩 Morphia MongoDB:类型过滤器已经定义
当尝试使用 Morphia for MongoDB 启动 Play Java 应用程序时,我得到以下堆栈跟踪,这是由于重新编译已编译的过滤器类型引起的:
java - 使用 Java 使用 morphia mongodb 查找地理空间
我想用 morphia 框架查询一些地理位置点。我使用我的纬度、经度和半径(100 公里)和“Near”方法来查询我所在位置周围的另一个并限制 10 个结果。像这样 :
它没有错误,但结果显示我周围的位置点超出了我的半径(100 公里)范围。所以,查询结果时我的半径不关心。
我的查询语句有什么问题?
提前谢谢你
java - DAO 和依赖注入,建议?
这是我第一次使用 DAO 模式。从我目前所读到的,实现这个模式将帮助我将我的调用代码(控制器)与任何持久性实现分开——这正是我想要的;也就是说,我不想被限制使用任何特定的数据库或第 3 方库。
我正在使用 MongoDB 和 morphia(作为示例)以及 morphia 提供的BasicDAO
类创建一些测试代码(以 TDD 方式)。
据我所知,扩展BasicDAO<T, V>
需要一个接受 Morphia 和 Mongo 对象的构造函数;这些是非常具体的(第 3 方)类型,我真的不想在 DAO 类本身之外四处游荡。
我怎样才能拥有更多的可插拔架构?我的意思是,我应该如何重新配置我的应用程序以使用具有特定配置参数的特定 DAO,在实际源之外?
java - 如何在没有工厂的情况下调用 DAO?
根据我在这里的帖子,我有以下 DAO 层次结构:
通用DAO.java
GenericDAOMongoDBImpl.java
对象DAO.java
ObjectDAOMongoDBImpl.java
我对应该如何使用感到困惑ObjectDAO
?在这个时候,我认为工厂方法是矫枉过正的。因此,像这样简单地从客户端构造 DAO 更有意义:
由于clazz
是动态的,它可能被证明是一场噩梦,试图改变工厂方法来接受一个参数,一路破坏我的通用接口。
有没有更清洁的方法?我本可以简单地扩展提供的morphiaBasicDAO<T, K>
,但这不会让我轻松地从MongoDB更改为JDBC等。
mongodb - 使用 Morphia 在 Mongo 中更新嵌入的地图条目
我们有一个将 Map 存储为集合的embedded
集合。我们需要更新 Map 的各个条目中的字段。
有没有办法做到这一点?
我们要更新map
与给定键匹配的字段。我们Morphia
在我们的Daos
.
mongodb - 如何使用 morphia 在 mongodb 中存储 HashMaps?
如何使用 morphia 在 mongodb 中存储 HashMaps?
我不确定这是否是 morphia 中的错误,或者我只是做错了。
说我有这个域模型
当我尝试使用扩展 BasicDAO repo.save(personInstance) 的类来保存它时,我收到此错误:(UsedView 相当于上面示例中的 Thing)
java.lang.IllegalArgumentException: can't serialize class com.model.design.UsedView at org.bson.BSONEncoder._putObjectField(BSONEncoder.java:205) at org.bson.BSONEncoder.putMap(BSONEncoder.java:245) at org .bson.BSONEncoder._putObjectField(BSONencoder.java:177) 在 org.bson.BSONEncoder.putObject(BSONEncoder.java:121) 在 org.bson.BSONencoder.putObject(BSONencoder.java:67) 在 com.mongodb.OutMessage。 putObject(OutMessage.java:189) at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:245) at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:209) at com.mongodb.DBCollection.insert (DBCollection.java:66) com.mongodb.DBCollection.save(DBCollection.java:622) com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:731) com.google.code.morphia。 DatastoreImpl.save(DatastoreImpl。java:793) 在 com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:787) 在 com.google.code.morphia.dao.BasicDAO.save(BasicDAO.java:109)...
然后,如果我改变:
至
它保存得很好。
有什么想法吗?
非常感激!
java - morphia 处理不良数据
假设我在 mongo 中有一些这样的 json:
和一个像这样的java类:
这有效(我知道 json 应该将值存储为 int 而不是字符串,但我不控制那部分)。
现在,当我有这样的数据时,morphia 会抛出:
我正在寻找一种解决方法(我想要的行为是将空字符串视为空字符串)。
到目前为止,我唯一的解决方法是:
但我希望有某种方法可以在自定义反序列化行为的 Integer 属性上挂一个注释。
unmarshalling - 使用 Morphia 存储多维数组
我在使用 Morphia 读取/解组多维数组时遇到了麻烦。
以下类:
被正确编组并存储在 mongodb 中,但是在阅读它时我得到一个异常,即无法构造 double[][]。我尝试使用自定义 TypeConverter,但没有为此类类型调用它。我在使用这样的成员时遇到的类似问题:
我没有找到任何可以帮助 morphia 找出数组中预期的类型的注释。我怀疑这还不支持。有什么建议么 ?
提前致谢。
java - MongoDB 和 Morphia - Traditionnal id (Long) 而不是 ObjectId
背景:
我的 REST 服务项目是使用 Hibernate 启动的。我在域类中使用 id (Long) 作为其余 url 中标识符的一部分,例如:
http://abc.com/customer-50,其中 50 是 Long id。
Hibernate Annotated 类如下:
现在我需要将我们的设计迁移到 Mongodb。自然的选择是使用 Morphia,它是一个实体框架。
问题: 在 Morphia 中,id 字段是 ObjectId
这将导致问题,因为: 1. 它不是自动递增的,即http://abc.com/customer-50、http://abc.com/customer-51、http://abc.com/customer- 52 .
现在它变成了http://abc.com/customer-4d1b4687a6d5437619000000
我需要将所有引用类从 long 更改为 objectId。
是否可以保留原始设计(使用 Long id,而不是 ObjectId)?
谢谢!