mysql - Springboot:getmapping返回错误的数据库值
问题描述
嗨,我有一个包含以下字段的 mysql 表。我无法通过/roles
在 springboot 中调用 api 来获得正确的值。这是我的角色文件-
角色.sql
CREATE TABLE IF NOT EXISTS `role` (
`role_id` int(5) NOT NULL AUTO_INCREMENT,
`role_description` varchar(25) NOT NULL,
PRIMARY KEY (`role_id`)
) ENGINE=MyISAM AUTO_INCREMENT=50 DEFAULT CHARSET=latin1;
INSERT INTO `role` (`role_id`, `role_description`) VALUES
(1, 'admin'),
(2, 'hairstylist'),
(3, 'staff');
角色控制器.java
@CrossOrigin(origins = "*")
@RestController
@RequestMapping("/api")
public class RoleController {
@Autowired
private RoleRepository roleRepository;
@PostMapping("/roles")
public Role addRole(@RequestBody Role role) {
return roleRepository.save(role);
}
@GetMapping("/roles")
public ResponseEntity<List<Role>> getAllRoles() {
return ResponseEntity.ok(roleRepository.findAll());
}
}
RoleRepository.java
package com.example.hms.springboothms.repository;
import com.example.hms.springboothms.model.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface RoleRepository extends JpaRepository<Role, Integer> {
}
角色.java
package com.example.hms.springboothms.model;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@NoArgsConstructor
@AllArgsConstructor
@Table
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int roleID;
private String roleDescription;
public int getRoleID() {
return roleID;
}
public void setRoleID(int roleID) {
this.roleID = roleID;
}
public String getRoleDescription() {
return roleDescription;
}
public void setRoleDescription(String roleDescription) {
this.roleDescription = roleDescription;
}
}
但是,当我使用邮递员调用角色 api 时,我在角色表中得到重复的管理字段 - 有人知道为什么吗?
我不确定它是否是休眠映射?我尝试遵循Spring Boot:Reading data using Spring Data JPA Returns wrong values but it still doesn't get the correct values
spring.main.web-application-type=none
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
这是我的 pom.xml 文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<distributionManagement>
<repository>
<id>internal.repo</id>
<name>Internal repo</name>
<url>file:///home/thara/testesb/in</url>
</repository>
</distributionManagement>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.hms</groupId>
<artifactId>springboot-hms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-hms</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<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-starter-web</artifactId>
</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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
解决方案
正如我试图在评论部分提到的,请尝试以下操作:
@NoArgsConstructor
@AllArgsConstructor
@Table
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name=“role_id”)
private int roleID;
@Column(name=“role_description”)
private String roleDescription;
public int getRoleID() {
return roleID;
}
public void setRoleID(int roleID) {
this.roleID = roleID;
}
public String getRoleDescription() {
return roleDescription;
}
public void setRoleDescription(String roleDescription) {
this.roleDescription = roleDescription;
}
}
推荐阅读
- symfony - 具有 foreach 和多个参数的 QueryBuilder
- spring-boot - 使用带有 Redis 数据的 Spring Boot 获取密钥的问题
- swift - UIScrollView contentOffset 在方向更改后损坏
- android - 在 android 的 ExoPlayer 中播放第二个视频后,音频继续播放
- asp.net-mvc - MapHttpRoute 没有击中控制器
- html - HTML / CSS:在 flex 中有带有文本的图像。但悬停后,我希望文本改变和线性渐变黑色从上到下透明
- java - 为什么在 windows 中启动 camunda-bpm-tomcat-7.14.0 后关闭自动 Tomcat
- python - 在“功能”中找不到参考“连接”
- html - onfocusout 在导航触发之前运行
- python - 使用 Numpy.eye 创建一个二维数组,其中包含自定义值 0 和自定义对角线