我的行为很奇怪。我创建了扩展CrudRepository的存储库。除保存方法外,所有默认方法都可以正常工作。它不会将新实体保存到数据库。我需要使用提供的ID保存新实体。如果我在db中提供了现有ID,则保存成功更新了该实体,但是如果我设置了新ID,则什么也没有,甚至没有错误。 我的仓库:
val path = "android.resource://" + packageName + "/" + R.raw.my_video
videoView.setVideoURI(Uri.parse(path))
videoView.setZOrderOnTop(true)
videoView.seekTo(100)
videoView.start()
videoView.setOnPreparedListener { mp ->
videoView.setZOrderOnTop(false)
mp.isLooping = true // Loops the video
}
我的实体:
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);
}
答案 0 :(得分:0)
它似乎无法保存具有已设置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);