如何将 UserDefinedType(UDT) 与 Spring Data Cassandra 用于 List

2024-01-01

我在 cql 中创建了一个名为 widgetData 的 UDT,我有一个名为 widgetData 的相应 POJO 类。我想在另一个域 POJO 类中使用它作为 List。应该使用什么样的注释来做到这一点?

@Table("dashboardManagement")
public class Dashboard implements Serializable {

    @Column("dashboardState")
    @CassandraType(type = DataType.Name.UDT, userTypeName = "widgetData")
    private List<widgetData> dashboardState;
....

上面的代码不起作用。 我是否必须为此编写一个单独的 userTypeResolver ?


我意识到这个问题有点老了,但我已经完成了这项工作。

基本上,我有一个带有地址 UDT 的用户配置文件,并且该 UDT 有自己的 POJO/实体类。 UDT地址实体类使用了@UserDefinedType注解:

@UserDefinedType("address")
public class AddressEntity implements Serializable {
    private static final long serialVersionUID = 1817053316281666003L;

    @Column("mailto_name")
    private String mailtoName;
    private String street;
    private String street2;
    private String city;
...

用户实体使用地址 UDT 实体:

@Table("user")
public class UserEntity implements Serializable {
    private static final long serialVersionUID = 4067531918643498429L;

    @PrimaryKey("user_id")
    private UUID userId;
    @Column("user_email")
    private String userEmail;
    @Column("first_name")
    private String firstName;
    @Column("last_name")
    private String lastName;
    @Column("addresses")
    private List<AddressEntity> addresses;
    ...

然后,将用户的地址数据映射到UserEntity目的 (userE如下)并使用标准存储库方法保存它。

// save to DB
userRepo.save(userE);

您可以在此处找到为支持用户服务而构建的所有内容:https://github.com/datastaxdevs/workshop-ecommerce-app/blob/main/backend/src/main/java/com/datastax/tutorials/service/user/ https://github.com/datastaxdevs/workshop-ecommerce-app/blob/main/backend/src/main/java/com/datastax/tutorials/service/user/

所以我想说看看课程widgetData对象,确保它使用@UserDefinedType注释,并使用@Column中的注释Dashboard类(基本上,摆脱@CassandraType):

@Column("dashboardState")
private List<WidgetData> dashboardState;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 UserDefinedType(UDT) 与 Spring Data Cassandra 用于 List 的相关文章

  • 将数据作为 RDD 保存回 Cassandra

    我试图从 Kafka 读取消息 处理数据 然后将数据添加到 cassandra 中 就像它是 RDD 一样 我的麻烦是将数据保存回 cassandra 中 from future import print function from pys
  • 无法在 Mac 上将 JanusGraph 连接到本地 Cassandra

    我已在 Mac OS X 10 11 6 上安装并运行 Cassandra 3 11 1 跑步cqlsh在终端中打印以下消息 Connected to Test Cluster at 127 0 0 1 9042 cqlsh 5 0 1 C
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • 使用 Cassandra 进行单元版本控制

    我的应用程序使用 AbstractFactory 作为 DAO 层 因此一旦实现了 HBase DAO 系列 创建 Cassandra DAO 系列并从多个角度查看差异对我来说将是非常好的 不管怎样 试图做到这一点 我看到 Cassandr
  • Hector 在执行incrementCounter 后获取结果计数器值

    我们正在执行以下操作来更新计数器的值 现在我们想知道是否有一种简单的方法可以立即取回更新的计数器值 mutator incrementCounter rowid1 cf1 counter1 value Cassandra thrift AP
  • 如何更新 pl/sql 中嵌套表的列? [复制]

    这个问题在这里已经有答案了 我正在尝试在表中创建一个可以存储多个值的列 如下所示 我有一个学生id std和一个名为marks可以采用几个值 例如2 3 4 我想更新此列表以添加另一个标记2 3 4 5但我不知道怎么做 我如何更新专栏mar
  • 卡桑德拉身份验证问题

    卡桑德拉版本 apache cassandra 2 1 8 我最近配置了 2 节点集群Authenticator设置PasswordAuthenticator 当其中一个节点关闭时 我无法登录 Cqlsh 并出现以下错误 Connectio
  • cassandra 中的突变是什么?

    cassandra 中的突变是什么 它在做什么 我没有找到任何有关它的完整信息 您可以回答或分享带有手册或说明的链接吗 谢谢 Mutation 是一个由 thrift 生成的类 定义在cassandra thrift文件 您可以在以下位置找
  • 避免 cassandra 中的僵尸数据

    最近 我在客户设置 3 节点集群时遇到了一个问题 其中一个节点出现故障 并在 12 天后才上线 在我们的场景中 大多数表的默认 gc grace seconds 已设置为 1 天 并且有很多表 当此故障节点出现时 来自该节点的陈旧数据被复制
  • Cassandra修复导致节点超时

    我们使用具有 5 个节点的 Cassandra 3 10 1 集群 每个节点有 8 个核心和 23Gi 内存 全部位于同一个 DC 中 复制因子 2 一致性级别 2 最近 在大约每周进行一次的计划修复期间 来自一个节点的查询出现多次超时 在
  • 我可以在 Cassandra 2.1 中对集合进行多重查询吗?

    在 Cassandra 2 1 中 我们可以通过在列上创建二级索引来查询集合 cqlsh play gt select from songs where tags contains t1 id tags title e99f8f30 d21
  • 性能 - TTL 与在 Cassandra 中删除一行

    我们有大量数据写入 cassandra 中的数百万行 我们还有一个调度程序 需要处理这些记录并在处理成功后将其删除 想知道处理后删除行还是用 TTL 标记行 本质上是延迟删除 Deletion 与 TTL 对于 Cassandra 性能有何
  • 根据统计数据获取cassandra中的数据点

    我正在测试 Cassandra 2 0 作为存储时间序列数据的可能替代品 我制作了一个简单的表并将一些数据转储到其中 CREATE TABLE DataRaw channelId int sampleTime timestamp value
  • 如何知道 Cassandra 中键空间和列族的大小?

    最近 我开始使用 cassandra 的 Java 驱动程序 cassandra driver core 2 0 2 进行 Grails 与 Cassandra 的集成 因此 我很好奇如何知道我们的表在 cassandra DB 中存储数据
  • 如何过滤 Cassandra 中的数据?

    我在应用程序中使用 mySQL 一段时间了 收集的数据越多 速度就越慢 所以我一直在研究 NOSQL 选项 我在 mySQL 中拥有的东西之一是从一堆连接创建的视图 该应用程序在网格中显示所有重要信息 用户可以在此数据集上选择范围 进行搜索
  • Cassandra .setFetchSize() on 语句不被遵守

    我想在UI上实现分页 所以我这样设置fetchSize boundStatement setFetchSize 20 但 setFetchSize 不被尊重 截至目前 我的表有 400 行 并且所有 400 行均已检索 当我使用检索下一组行
  • Cassandra 默认配置为丢失 10 秒数据?

    由于Commitlog中的数据默认每隔10秒定期刷新到磁盘 由commitlog sync period in ms 那么如果所有副本在 10 秒内崩溃 我会丢失所有数据吗 这是否意味着从理论上讲 Cassandra 集群可能会丢失数据 如
  • Redis AOF fsync(始终)与 LSM 树

    我对日志结构化合并树 LSM 树 的理解是 它利用了附加到磁盘非常快 因为它不需要查找 这一事实 只需将更新附加到预写日志并返回到客户端即可 我的理解是 这仍然提供了立即的持久性 同时仍然非常快 我不认为 Redis 使用 LSM 树 它似
  • 什么时候不应该使用 Cassandra? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 相关话题已经有很多讨论了卡桑德拉 http cassandra apache org lately Twitter Digg Facebook
  • 如何在 SQL Server 存储过程中对用户定义的表类型执行 ForEach?

    XX PROCEDURE dbo XXX X dbo IntType readonly AS BEGIN SET NOCOUNT ON how can I foreach X here and do process individually

随机推荐