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

IllegalStateException:找不到必需的标识符属性

欧桐
2023-03-14

当我试图将一个对象保存到H2数据库时,我不断地得到这个异常。

我试图持久化的对象定义如下:

package mypackage.foo.core.jpa.domain;

@Entity
@Getter
@NoArgsConstructor
public class Task implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Setter
    private Long id;

    private String name;
    private String description;

控制器:

package mypackage.foo.core.web.controller;

@RestController
@RequiredArgsConstructor
public class TaskController {

    private final TaskService taskService;

    @PostMapping("/api/task/save")
    public ResponseEntity<Task> handlePostAddTask(@RequestBody Task task) {
        Task savedTask = taskService.save(task);

        return new ResponseEntity<>(savedTask, HttpStatus.CREATED);
    }
}
{
    "name":"first task",
    "description":"some fascinating description"
}
package mypackage.foo.core.jpa.repository;

@Repository
public interface TaskDao extends JpaRepository<Task, Long> {
}
@SpringBootApplication
@EnableJpaRepositories(basePackages = {"mypackage.foo.core.jpa.repository"})
@EntityScan(basePackages = {"mypackage.foo.core.jpa.domain"})
public class FooApplication {

    public static void main(String[] args) {
        SpringApplication.run(FooApplication.class, args);
    }

}
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

taskservice中的save(Task Task)实质上是调用taskdao.save(Task Task)

我也怀疑有错误的@id注释(我指的是来自错误的包),但这里不是这样。

共有1个答案

宁鹏程
2023-03-14
Use @Data annotation from lombok as given below. This will generate both setter & getter methods. I hope this will resolve the issue. 

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

import lombok.Data;

@Entity
@Data
public class Student {

    @Id
    @GeneratedValue
    private long id;
    private String firstName;
    private String lastName;


@Data Equivalent to @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode.

~Satheesh
 类似资料:
  • 问题内容: 我试图在程序中包含以下代码,但将出现错误(“ inet_pton”:未找到标识符)。 输出量 包括标题 任何帮助都可能会丢失一些标头或lib。 问题答案: 功能 在头文件中声明: 如果是Windows(Vista或更高版本),则有此ANSI版本的Winsock类似物: 尝试 添加Ws2_32.lib

  • 问题内容: 在尝试向其添加库之前,我的应用程序运行良好。添加库后,Android Studio给我以下错误: 错误:(26)在包“ inf ..”中找不到属性“ layout_behavior”的资源标识符。 这是我的build.gradle文件: 这是导致错误的xml: 我尝试了以下方法: 删除了图书馆 重置Android Studio和我的计算机 从git恢复为我的代码的先前版本。 但是,错误

  • 错误:(26)在包“inf..”中找不到属性“layout_behavior”的资源标识符。 这是我的build.gradle文件: 这是导致错误的xml: null 但是,错误仍然存在。我该如何解决这个问题?

  • 我使用Cordova构建一个Android应用程序。在我执行命令后,显示以下错误: d:\xampp\htdocs\shie_cordova\shia\platforms\android\build\intermediates\manifests\full\release\androidmanifest.xml:22:错误:在包android中找不到属性supportsRtl的资源标识符。 And

  • 问题内容: 在编译后运行程序时,出现以下错误: ./prog:/usr/lib/x86_64-linux-gnu/libstdc .so.6: 找不到版本GLIBCXX_3.4.19’(./prog要求)./prog:/ usr / lib / x86_64-linux-gnu / libstdc 。so.6:找不到版本“ GLIBCXX_3.4.20”(/ home / arman / lib