minami1
@minami1

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

日付ごとにデータを保存する方法

解決したいこと

カレンダーに
○○日
sample1 :何件
sample2 :何件
...sample5 :何件
と、〇〇日はそれぞれ何件行ったか表示させるプログラムの作成を行っているのですが、
データベースに日付ごとと、ユーザーごとに項目を保存する方法がわからないので教えてください。

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

package action.entity;

import java.time.LocalDate;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

@Entity
@Table(name = "fivecontact")
public class edit {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	private LocalDate date; // 保存された日付
	private int sample1;
	private int sample2;
	private int sample3;
	private int sample4;
	private int sample5;
	private String username;

	// Constructors, getters, setters
	// ...

	public Long getId() {
		return id;
	}

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

	public LocalDate getDate() {
		return date;
	}

	public void setDate(LocalDate date) {
		this.date = date;
	}

	public int getSample1() {
		return sample1;
	}

	public void setSample1(int sample1) {
		this.sample1 = sample1;
	}

	public int getSample2() {
		return sample2;
	}

	public void setSample2(int sample2) {
		this.sample2 = sample2;
	}

	public int getSample3() {
		return sample3;
	}

	public void setSample3(int sample3) {
		this.sample3 = sample3;
	}

	public int getSample4() {
		return sample4;
	}

	public void setSample4(int sample4) {
		this.sample4 = sample4;
	}

	public int getSample5() {
		return sample5;
	}

	public void setSample5(int sample5) {
		this.sample5 = sample5;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}
// Controllerクラス
@PostMapping("/edit/save")
	public String saveData(@RequestParam int sample1, @RequestParam int sample2,
			@RequestParam int sample3, @RequestParam int sample4,
			@RequestParam int sample5) {
		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
		String username = authentication.getName();

		edit data = new edit();
		data.setSample1(sample1);
		data.setSample2(sample2);
		data.setSample3(sample3);
		data.setSample4(sample4);
		data.setSample5(sample5);
		data.setUsername(username); // ログインユーザーのusernameを設定

		fiveContactRepository.save(data);
		return "redirect:/home"; // 適切なリダイレクト先を指定
	}
0

2Answer

fiveContactRepository.save が実行されているのにも関わらず DB に保存されていないのだとしたら、
ロールバックされているのかもしれません。
@Transactional アノテーション付けてみては。

0Like

データベースに日付ごとと、ユーザーごとに項目を保存する方法がわからない

この保存する方法がわからない、というのは
画面の処理として保存する方法が分からないという意味でしょうか?
それとも「日付ごと」「ユーザーごと」という制約がうまくいかない、的な意味でしょうか?

(そもそも fivecontact のテーブル定義はどうなっているのかも気になりますが…)

まず何がやりたくて、どこまで出来ていて、どの部分が具体的にどのようにうまくいかないのか、という情報があればより適切に回答できるのではと思います。

0Like

Your answer might help someone💌