gpt4 book ai didi

java - CrudRepository 保存方法不会在数据库中保存任何内容

转载 作者:行者123 更新时间:2023-12-01 17:50:08 25 4
gpt4 key购买 nike

我的行为很奇怪。我创建了扩展 CrudRepository 的存储库。除保存方法外,所有默认方法都可以正常工作。它不会将新实体保存到数据库。我需要使用我提供的 id 保存新实体。如果我在数据库中提供现有的 id - 然后保存更新该实体成功,但如果我设置新的 id - 那么什么都没有,甚至没有错误。我的仓库:

import com.xxx.yyy.entities.Game;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface GameRepository extends CrudRepository<Game, Integer> {}

我的实体:

import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;

import java.util.Objects;

@Table("game_info")
public class Game {

@Id
private int id;
private String name;
private int wager;

setters and getters

我的服务:

public void addGame() {

Game g = new Game();
g.setId(10);
g.setName("Name");
g.saveWager(22);

gameRepository.save(game);
}

我的 table :

CREATE TABLE `game_info`
(
`id` INT UNSIGNED NOT NULL COMMENT 'Unique identifier of the Game',
`name` VARCHAR(32) NOT NULL COMMENT 'Name of the Game',
`wager` INT NOT NULL COMMENT 'Wager of the Game',
PRIMARY KEY (`id`),
UNIQUE (`name`)
);

最佳答案

它似乎无法保存具有设置 ID 的实体。我必须像这样编写新的插入方法:

@Modifying
@Query("INSERT INTO `game_info` (`id`, `name`, `wager`) VALUES (:id, :name, :wager)")
void addGame(@Param("id") int id, @Param("name") String name, @Param("wager") Integer wager);

关于java - CrudRepository 保存方法不会在数据库中保存任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60812312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com