当前位置: 首页 > 知识库问答 >
问题:

Cassandra映射器未映射到类

百里成仁
2023-03-14

我正在构建一个REST API,

    @Accessor
public interface ActiveBidAccessor {
    @Query("SELECT * FROM keyspace.active_bid WHERE username = :username")
    public Result<ActiveBid> getAllByUsersname(@Param("username") String username);


    @Query("SELECT * FROM keyspace.active_bid")
    public Result<ActiveBid> getAll();
}

和ActiveBid类

@Table(keyspace = "keyspace", name = "active_bid", readConsistency = "QUORUM", writeConsistency = "QUORUM", caseSensitiveKeyspace = false, caseSensitiveTable = false)
public class ActiveBid {
    @PartitionKey
    UUID uid;
    @ClusteringColumn
    @Column(name = "username")
    String username;
    @Column(name = "project_name")
    String projectName;
    @Column(name = "project_link")
    String projectLink;
    @Column(name = "total_bid")
    int totalBid;
    @Column(name = "user_bid")
    long userBid;
    @Column(name = "avg_bid")
    long avgBid;
    @Column(name = "end_date")
    Date endDate;

    public ActiveBid(UUID uid, String username, String projectName, String projectLink, int totalBid, long userBid,
            long avgBid, Date endDate) {
        super();
        this.uid = uid;
        this.username = username;
        this.projectName = projectName;
        this.projectLink = projectLink;
        this.totalBid = totalBid;
        this.userBid = userBid;
        this.avgBid = avgBid;
        this.endDate = endDate;
    }

    public UUID getUid() {
        return uid;
    }

    public void setUid(UUID uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectLink() {
        return projectLink;
    }

    public void setProjectLink(String projectLink) {
        this.projectLink = projectLink;
    }

    public int getTotalBid() {
        return totalBid;
    }

    public void setTotalBid(int totalBid) {
        this.totalBid = totalBid;
    }

    public long getUserBid() {
        return userBid;
    }

    public void setUserBid(long userBid) {
        this.userBid = userBid;
    }

    public long getAvgBid() {
        return avgBid;
    }

    public void setAvgBid(long avgBid) {
        this.avgBid = avgBid;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(uid, username, projectName, projectLink, totalBid, userBid, avgBid, endDate);
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof ActiveBid) {
            ActiveBid that = (ActiveBid) obj;
            return Objects.equal(this.uid, that.uid) && Objects.equal(this.username, that.username)
                    && Objects.equal(this.projectName, that.projectName)
                    && Objects.equal(this.projectLink, that.projectLink) && Objects.equal(this.totalBid, that.totalBid)
                    && Objects.equal(this.userBid, that.userBid) && Objects.equal(this.avgBid, that.avgBid)
                    && Objects.equal(this.endDate, that.endDate);
        }
        return false;
    }

和我的泽西请求映射器,它具有获取数据的逻辑

@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public List<ActiveBid> getTrackInJSON() {
    logger.info("LoginApi: Returning the active bid");
    List<ActiveBid> activeBidList = new ArrayList<ActiveBid>();

    MappingManager manager = new MappingManager(cassDB.getSession());
    ActiveBidAccessor activeBidAccessor = manager.createAccessor(ActiveBidAccessor.class);
    Result<ActiveBid> activeBidResult = activeBidAccessor.getAllByUsersname("zakir");
    for(ActiveBid bid:activeBidResult){
        activeBidList.add(bid);
    }

    return activeBidList;
}

有人能帮我吗?我不知道和卡桑德拉共事会这么难。

共有1个答案

尉迟俊能
2023-03-14

司机不善于报告异常的原因。stacktrace指向以下内容

@Override
public T newEntity() {
    try {
        return entityClass.newInstance();
    } catch (Exception e) {
        throw new RuntimeException("Can't create an instance of " + entityClass.getName());
    }
}

但不幸的是,它吞下了例外。

同样,阅读这些代码时,出现异常的原因似乎是您的实体类中没有可访问的无参数构造函数。

public ActiveBid() {}
 类似资料:
  • 卡桑德拉表列: Java实体: 当执行从表列“pickuploc”中选择查询时,并没有完全映射到实体中定义的picupLocal属性。 这是我得到的回应: 使用Spring数据卡桑德拉1.5.8

  • 前端将这个json发送到我的API 控制器:

  • 当我尝试通过枚举将源中的字符串映射到目标中的整数时。ModelMapper失败。 来源 目的地 字符串和整数之间的映射在枚举中定义

  • 我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好

  • 问题内容: 我一直在研究一个非常简单的JPA示例,并试图将其调整为现有数据库。但是我无法克服这个错误。(下面。)这只是我没看到的一些简单的事情。 在下面的DocumentManager类中(一个简单的servlet,因为这是我的目标),它做了两件事: 插入一行 返回所有行 插入效果很好-一切都很好。问题出在检索上。我尝试了各种参数值,但没有走运,并且尝试了各种更复杂的类注释(如列类型),但都没有成

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示: