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

此类不定义IdClass

戎高爽
2023-03-14

My for classclassItem是对Class1中条目的引用。Hibernate需要我定义@IdClass。使用Class1Id,定义自己的类对我来说不起作用。

这是我收到的错误:

org.springframework.beans.factory.UnsatisfiedDependencyException:在类路径资源[org/springFramework/boot/autoconfiure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]中创建名为'Request estMappingHandlerAdapter'的bean时出错:通过方法'Request estMappingHandlerAdapter'参数1表示的不满足的依赖;嵌套异常org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springFramework/boot/autoconfiure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]中创建名为'mvcConversionService'的bean时出错:通过工厂方法进行Bean实例化失败;嵌套异常org.springframework.beans.BeanInstantiationException:实例化失败[org.springframework.format.support.FormattingConversionService]:工厂方法'mvcConversionService'抛出异常;嵌套异常org.springframework.beans.factory.BeanCreationException:创建名为'bookItemRepository'的bean时出错:初始化方法调用失败;嵌套异常java.lang.IllegalArgumentException:此类[类de.models.Class1Item]未定义IdClass

都在同一个包中的相关类:

import javax.persistence.*;
import javax.validation.constraints.NotNull;

import lombok.*;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

@Entity
@Setter
@Getter
@NoArgsConstructor
@IdClass(Class1ItemId.class)
public class Class1Item implements Serializable {

    @Id
    @ManyToOne
    @JoinColumn(name="reference")
    private Class1 class1;

    @NotNull
    @GeneratedValue
    private Long number;

    @Column(name="date_one")
    private LocalDate date1;

    @Column(name="date_x")
    private LocalDate dateX;

    @ManyToOne
    @JoinColumn(name="userReference")
    private User userReference;

    @ManyToMany
    @JoinColumn(name="waitingUsers")
    private List<User> waitingUsers;

    @NotNull
    @Enumerated(EnumType.STRING)
    @Column(name="enumX")
    private EnumX enumX;

}
import javax.persistence.*;
import javax.validation.constraints.NotBlank;

import lombok.*;

import java.io.Serializable;

@Entity
@Setter
@Getter
@NoArgsConstructor
public class Class1 implements Serializable {

    @Id
    @NotBlank
    private String key;

    @NotBlank
    private String name;

    @NotBlank
    private String nameF;

    @NotBlank
    private String nameL;

    private String path;
}
import javax.persistence.*;
import javax.validation.constraints.NotNull;

import lombok.*;

import java.io.Serializable;
import java.util.Set;

@Entity
@Setter
@Getter
@NoArgsConstructor
public class User implements Serializable {

    @Id
    @Column(name="UserID")
    private Long id;

    @NotNull
    @Column(name="email",unique=true)
    private String email;

    @NotNull
    @Column(name="user_firstname")
    private String firstName;

    @NotNull
    @Column(name="user_lastname")
    private String lastName;

    @NotNull
    @Column(name="isAdmin")
    private Boolean isAdmin;

    @ManyToMany
    @Column(name="wantedItems")
    private Set<Class1Item> wantedItems;

    @OneToMany
    @Column(name="borrowedItems")
    private Set<Class1Item> itemsBorrowed;
}
import javax.persistence.Id;
import java.io.Serializable;

public class Class1ItemId implements Serializable {
    @Id
    private String key;
}

当实际定义了IdClass时,如何修复此错误?

共有1个答案

杜嘉木
2023-03-14

您定义了一个@IdClass,但没有在 ClassItem @Entity中重新声明的密钥。它们必须匹配。

您需要像这样添加它们:

@Entity
@IdClass(Class1ItemId.class)
// others
public class Class1Item implements Serializable {

    @Id
    private String key; // from your Class1ItemId

  // others

}
 类似资料:
  • 在我的ios应用程序中,我试图区分环境,对适当的环境进行web api调用(,和)。 为此,我创建了一个文件,包含每个环境的不同endpoint,以及: 复制了配置,并将其称为 创建了一个名为的新方案(复制了方案),并在信息选项卡(部分)中选择了配置 当我在调试模式下运行时,一切都正常运行。 我在用可可豆荚。 如果我选择scheme,我会得到一个 如果我编辑方案以使用构建,它就可以正常工作。 所以

  • 大多是前端的新产品,在Vue绝对是新产品。我试图从URL中读取查询参数。以下如何从Vue.js?和https://router.vuejs.org/guide/#javascript的URL获取查询参数 我现在有了这个代码: 但是,在Chrome或Firefox中运行它会产生“无法读取未定义的'query'属性” 定义路由并创建到它们的链接并加载它们,正如《VueRouter指南》中所述。看来Vu

  • 我正在设计一个名为unlink Node的非静态无效方法,它将节点n作为参数。它应该确保节点与它之前和之后的节点解除链接。它需要改变n后节点的prev和n前节点的下一个。目前,当我运行它时,我得到了错误 第111行n.getPrev(). Next=null; 尽管我已经输入了语句,以确保如果n是尾部,则不访问它的上一个,如果是头部,则不访问它的下一个,以确保没有访问null。 方法如下: 以及设

  • 类的定义 1.定义基类 任何不从另一个类继承的类都是所谓的基类 Swift类不会从一个通用基类继承. 你没有指定特定父类的类都会以基类的形式创建. class Vehicle { var currentSpeed = 0.0 var description: String { "traveling at \(currentSpeed) miles per hour"

  • 当我执行一个web客户端请求(到一个外部api)并且响应是4xx或5xx代码时,我遇到了一个问题。建议处理该响应并使用自定义类检索响应 Web客户端配置是 处理过滤器.class MyExpcetion.class 但是我的客户回复总是给我一个默认格式 代替 怎么了?谢谢