gpt4 book ai didi

java - spring-cassandra UDT数据插入

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:41 25 4
gpt4 key购买 nike

谁能帮我找出如何使用 Spring POJO 类插入 Cassandra UDT 数据?

我创建了一个 POJO 类来映射 Cassandra 的表并为 Cassandra UDT 创建了另一个类,但是当我插入映射 Cassandra 表的主 POJO 类时,它无法识别另一个 POJO 类(映射 Cassandra 的 UDT)。我还在每个类和每个类对象上写了注释。

这是我的一个 POJO 类:-

package com.bdbizviz.smb.model.entity;

import org.springframework.cassandra.core.PrimaryKeyType;
import org.springframework.data.cassandra.mapping.PrimaryKeyColumn;
import org.springframework.data.cassandra.mapping.Table;

import com.bdbizviz.smb.cassandra.udt.CoverPhoto;
import com.bdbizviz.smb.cassandra.udt.Location;
import com.bdbizviz.smb.cassandra.udt.MailingAddress;
import com.bdbizviz.smb.cassandra.udt.Reference;
import com.bdbizviz.smb.cassandra.udt.RestaurantServices;
import com.bdbizviz.smb.cassandra.udt.RestaurantSpecial;
import com.bdbizviz.smb.cassandra.udt.VoipInfo;
import com.datastax.driver.mapping.annotations.Frozen;


@Table("source")
public class Sources {


Integer likes;
Integer followers;
Integer rating;
String last_processedtime;
String filter_str;
String filter_type;
String category;

@PrimaryKeyColumn(ordinal=0,type=PrimaryKeyType.PARTITIONED)
String admin;

@PrimaryKeyColumn(ordinal=1,type=PrimaryKeyType.CLUSTERED)
String name;

@PrimaryKeyColumn(ordinal=2,type=PrimaryKeyType.CLUSTERED)
String source;

@PrimaryKeyColumn(ordinal=3,type=PrimaryKeyType.CLUSTERED)
Integer id;

@PrimaryKeyColumn(ordinal=4,type=PrimaryKeyType.CLUSTERED)
String type;

Integer delete_flag;
Integer evaluated;

@Frozen
Reference fb_reference_id_name ;

@Frozen
MailingAddress fb_mailingaddress;

@Frozen
CoverPhoto fb_coverphoto ;

@Frozen
VoipInfo fb_voipinfo;

@Frozen
RestaurantServices fb_restaurantservice;

@Frozen
RestaurantSpecial fb_restaurantspecialties;

@Frozen
Location fb_location;

/* Setter and Getter */
}

另一个 POJO 类:-

package com.bdbizviz.smb.cassandra.udt;

import org.springframework.data.annotation.Persistent;
import com.datastax.driver.mapping.annotations.Field;
import com.datastax.driver.mapping.annotations.UDT;

@UDT(name = "reference" ,keyspace="smb")
public class Reference {

@Field(name="id")
String id ;

@Field(name="name")
String name;

/* Setter and Getter */
}

最佳答案

Spring Cassandra Driver 甚至不支持 UDT 特性。您必须为此功能使用 Cassandra 的自定义驱动程序。

这里是Cassandra Driver的maven依赖

<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-dse</artifactId>
<version>2.1.6</version>
</dependency>

关于java - spring-cassandra UDT数据插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30373748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com