Caused by org.hibernate.AnnotationException No identifier specified for entity:com.beans.UserInfo

2023-11-10

Causedby:org.hibernate.AnnotationException: No identifier specified for entity:

这是在SpringBoot 整合SpringDataJPA写测试类遇到的错误:
意思是说:根据Hinbernate的规范,一定要为实体类添加唯一的标识符,即主键id。在私有变量或set方法之上添加注解即可。

例:

@Id 

@GeneratedValue

private int id;

但是,我是有这些注解的。
通过一系列的排查,终于找到了问题所在,问题在于注解导入的包有错,之前自动导的是spring的包,
import org.springframework.data.annotation.Id;

正确的注解导包是:

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

实体类代码:

package com.beans;



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


@Entity
public class UserInfo {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    private String userName;
    private String password;
    private String note;


    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", note='" + note + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }
}

UserDao接口:

package com.dao;

import com.beans.UserInfo;

import org.springframework.data.jpa.repository.JpaRepository;


/**
 * 要继承于Jpa提供的某个接口,并提供泛型,前面的是指要操作哪个类型的对象,后面是指主键类型
 */
public interface UserDao extends JpaRepository<UserInfo,Integer> {

    //这里不用写任何东西
}

UserDaoTest测试类:

package com.test;

import com.SpringdataJpaApplication;
import com.beans.UserInfo;
import com.dao.UserDao;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = SpringdataJpaApplication.class)//主启动类.class
public class UserDaoTest {

    @Resource	//Spring注入
    UserDao userDao;
    @Test
    public void testSave() {
        UserInfo user=new UserInfo();
        user.setId(2);
        user.setUserName("root");
        user.setPassword("pwdaaa123");
        user.setNote("这是一个jpa用户");

        userDao.save(user);
        System.out.println("用户添加成功");

    }

    
}

application.properties配置文件:

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=Root

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Caused by org.hibernate.AnnotationException No identifier specified for entity:com.beans.UserInfo 的相关文章

随机推荐

  • Java的类名与文件名必须一致

    1 Java保存的文件名必须与类名一致 2 如果文件中只有一个类 文件名必须与类名一致 3 一个Java文件中只能有一个public类 4 如果文件中不止一个类 文件名必须与public类名一致 5 如果文件中不止一个类 而且没有publi
  • RHEL7计划任务和日志管理

    本节所讲内容 at 定制单次执行的计划任务 cron定制周期性计划任务 配置脚本实现周期性任务 配置公司内网服务器每天自动开关机 Linux系统日志记录规律 自定义日志记录方式 配置远程收集日志服务器 计划任务 at 只能执行一次 语法 a
  • 电商项目完成的BUG调查原因和解决方案

    这是我来到浙大网新恒天后 第一个完成的项目 在完成项目后 我总结了那些自己感觉重要的BUG 第一项目为电商项目 1 BUG系列一 界面销毁时 未关闭广播 dialog等 崩溃 Bug现象 Bug 85778 同一个账号 两部手机登陆 第一个
  • [es6]Symbol.iterator 和 for of

    Symbol iterator 和 for of 是es6的新特性 可以为对象设置 自己的迭代器 首先介绍我们的for of var arr 1 2 3 8 33 for var i of arr console log i 1 2 3 8
  • 使用Python,OpenCV进行去水印,图像修复

    图像修复是图像保存和图像恢复的一种形式 其历史可以追溯到1700年代 当时意大利威尼斯的公共图片修复总监彼得 爱德华兹 Pietro Edwards 应用这种科学方法来修复和保存著名作品 资料来源 图像修复技术显着提高了图像绘画的质量 使我
  • nginx配置代理

    背景 公司一台裸金属服务器由于限制无法访问内部100 X网段的机器 而申请这台裸金属的用户需要访问这个网段的代码仓库codehub 更换机器已经来不及 所以申请了另一台服务器作为nginx代理来访问 配置如下 1 tar包安装nginx指定
  • Java中静态的main方法为什么可以调用非静态成员变量?方法之间调用局部变量?

    静态方法不可以 直接 调用动态方法或动态变量 但是可以创建动态变量 也可以 直接 调用静态方法和静态变量 对象属于动态的 动态的可以调用动态的 也可以调用静态的 综上 1 main 方法是静态的 在main 方法中 我们可以直接调用main
  • Git和其远程仓库的使用

    一 什么是Git远程仓库 目前我们已经掌握了Git基础操作 对于文件的增删改 再也不用担心文件的丢失与误删问题了 如果还有不了解的可以看下我上章节的Git基础教程 对于文件增删改的操作 Git与SVN基本没啥区别 但是GIt究竟强在哪了 这
  • 数据挖掘十大算法(二):K-means聚类算法原理与实现

    参考 1 机器学习 KMeans聚类 K值以及初始类簇中心点的选取 2 K Means算法的研究分析及改进 一 K means算法原理 K means算法是最常用的一种聚类算法 算法的输入为一个样本集 或者称为点集 通过该算法可以将样本进行
  • 运维平台权限表结构设计

  • 【node 报错】Error: Cannot find module ‘路径 / 具体文件名‘

    过程如下 输入 node 文件名 出现报错信息 原因 该终端是在错误的文件路径打开 没在当前文件下的路径打开 因此要在当前的文件下打开终端 运行 node 文件名
  • linux终端密码星星,如何在Ubuntu终端中显示密码星号

    每当要求您在Ubuntu终端中键入密码时 都将插入密码 而不会得到任何可视显示或屏幕反馈 在这种情况下 您可能会通过错误输入密码而弄乱密码 这就是视觉反馈如此重要的原因 它可以帮助您跟踪输入的字符数 尤其是在输入密码时 这样您就不会错过任何
  • tp5 链表查询,查出left表为空的数据

    背景 tp5 A B两表join链表查询 查出B表数据为空的A表数据 以及 B表数据不为空的A表数据 此操作将使用到 EXP 和 IS NULL 查出B表数据为空的A表数据SQL where exp Db raw b id IS NULL
  • 代码随想录算法训练营第十天

    今天是打基础的一天 了解队列和栈的实现 上次学习这块记忆犹新 只要打基础 那天的我肯定是沮丧的 总会是说的时候都懂 写的时候不知道从哪里下手 看看这次会遇到什么 艰难险阻 及时记录下来 哈哈 Java 中 我总是不清楚为什么queue的cr
  • iis服务器文件上传大小限制,IIS修改最大上传文件限制的方法

    我们在修改PageAdmin网站管理系统的附件上传大小时候 经常出现修改后还是上传不了大文件 这是因为服务器系统本身的限制导致的 下面分别对IIs6和IIs7的修改方法作详细介绍 IIS7的修改方法 IIS7 0默认限制上传文件大小为300
  • 堆栈认知——栈溢出实例(ret2libc)

    参考 栈溢出实例 笔记三 ret2libc 地址 https qingmu blog csdn net article details 119481681 目录 1 栈溢出含义及栈结构 2 ret2libc基本思路 3 实战 3 1 二进制
  • python爬虫系列4--BeautifulSoup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库 中文文档链接 https www crummy com software BeautifulSoup bs4 doc index zh html id
  • jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结

    原文地址 http www jb51 net article 76917 htm 建议直接查看原文 1 选择器 1 通配符 input id code id属性以code开始的所有input标签 input id code id属性以cod
  • 基于CNN遥感图象分类+前后端交互

    基于CNN遥感图像分类 前后端交互 基于CNN遥感图像分类 前后端交互 一 项目介绍 1 1 项目简述 1 2 几个概念 二 遥感图片分类模型 2 1 训练数据的处理 三 效果展示 参考资料 项目完整代码 GitHub 一 项目介绍 1 1
  • Caused by org.hibernate.AnnotationException No identifier specified for entity:com.beans.UserInfo

    Causedby org hibernate AnnotationException No identifier specified for entity 这是在SpringBoot 整合SpringDataJPA写测试类遇到的错误 意思是