首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >morphia注解

morphia注解
EN

Stack Overflow用户
提问于 2012-05-24 07:24:47
回答 1查看 539关注 0票数 0

我使用的是mongodb和java,还有morphia。

对于我的用例,我在运行时获得了集合名称。所以我有一个集合名称的枚举,基于一些值,我从枚举中获得了相应的集合名称。我的实体注释如下

代码语言:javascript
复制
@entity(EnumName.getCollectionName())

但是我得到了以下错误

代码语言:javascript
复制
"The value for annotation attribute Entity.value must be a constant expression"

实际上,我只返回一个常量表达式。有人能告诉我问题出在哪里吗?

EN

回答 1

Stack Overflow用户

发布于 2012-05-24 15:01:14

你不能在注解中使用一些动态的东西,因为这些是“编译”的时间特性,以后不能改变。所以你只能处理你在那里声明的常量,枚举和类。为此,聪明的编译器可能会发现你处理了一些可能永远不会改变的事情,但大多数人不会改变,一旦他们看到你试图将一些函数值赋给注释属性,他们就会出错。

我真的不明白你想做什么,但不知何故,你似乎试图用一个“泛型”实体类来实现几个具体的实体。我认为这真的是糟糕的设计。如果你能说出更多细节,我们也许能为你的问题提供一个合适的解决方案。

如果你只是不知道在运行时你必须操作什么类,试试这个。声明您的具体实体,并用这些类填充您的枚举。在运行时,您可以执行Datastore.find(Enum.YOURCLASS),morphia将查询您相应的类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10729240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档