Java 基于Siena的非规范化数据建模
我正在尝试在GAE/J上创建一个简单的应用程序。数据模型由一个Java 基于Siena的非规范化数据建模,java,google-app-engine,siena,datamodel,Java,Google App Engine,Siena,Datamodel,我正在尝试在GAE/J上创建一个简单的应用程序。数据模型由一个注释列表,每个注释都有一些标记 在关系世界中,这将是多对多-因为每个注释可以有几个标记,每个标记可以“属于”几个注释。然而,这不太适合GAE数据存储环境。因此,我正在考虑保存每个注释,以及它的标记列表。如果索引正确,按标记搜索也应该很快 我的问题:如何使用锡耶纳建模?文档很稀疏,我看到了示例,但感到困惑。锡耶纳文档很稀疏,因为我没有时间再做它了。。。我忙于其他项目,如果有人想贡献和维护锡耶纳,欢迎他/她;) 考虑到你的问题,是的,你应
注释列表
,每个注释都有一些标记
在关系世界中,这将是多对多-因为每个注释
可以有几个标记
,每个标记
可以“属于”几个注释
。然而,这不太适合GAE数据存储环境。因此,我正在考虑保存每个注释
,以及它的标记列表
。如果索引正确,按标记搜索也应该很快
我的问题:如何使用锡耶纳建模?文档很稀疏,我看到了示例,但感到困惑。锡耶纳文档很稀疏,因为我没有时间再做它了。。。我忙于其他项目,如果有人想贡献和维护锡耶纳,欢迎他/她;) 考虑到你的问题,是的,你应该使用一个简单的列表(又名属性列表),它由锡耶纳管理,在GAE中工作 添加一个字段,例如:(无注释)
列出标签
它应该有用 如果有关文档的评论听起来像是在咆哮,我很抱歉。我不是有意冒犯你的!现在,如果我的标记本身是一个模型,而不仅仅是一个字符串,该怎么办?我可以只做列表标签吗?我读到了关于嵌入的内容,认为我应该使用
@Embedded
注释。我的理解是,如果您不想执行JOIN
s(我在问题中描述的场景),那么应该使用@Embedded
。这种理解正确吗?别担心,我没有生气:D只是我很难过地意识到了这一点,不能再像去年那样在锡耶纳工作了,因为我在其他项目上工作。。。关于标记,不,您不能使用List,但List as GAE只管理列表属性的基元类型@嵌入式将是一个解决方案,但GAE对实体组(嵌入式实体)中可以执行的更新数量有限制。修改此组的次数不能超过每秒1次。所以我建议您使用List并将标记键写成字符串,这样您就可以很容易地找到相应的。好的,我现在就知道了。我可能会坚持使用简单的String
s作为标记(这就是标记的含义!)。我仍然需要尝试一下“查找带有某某标记的笔记”的工作原理。我将在这里更新我的发现。我已经完成了这项工作,但仍然无法找到一件事:搜索所有包含给定标记的注释的最有效方法。特别是,如何使filter()
方法在列表中查看
List<String> tags