spring mvcおよびhibernateを使用して操作を実行および更新する簡単なアプリケーションがあります。しかし、私はエラーが発生しています。私は自分のデータ入力でcreatedAtとupdatedAt date時間を持っています。だから私はこれをどのように達成することができます。null以外のプロパティがnull値または一時的な値を参照しています:com.project.test.entity.Stamp.createdAt
POJO:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "name")
private String name;
@CreationTimestamp
@Basic(optional = false)
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
@UpdateTimestamp
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;
コントローラー:
@Controller
@RequestMapping(value = "/")
public class HomeController {
@Autowired
private NameDao nDao;
@RequestMapping(method = RequestMethod.GET)
public String getIndex(Model model){
model.addAttribute("message", "Welcome to Spring");
model.addAttribute("sL", nDao.getAll());
return "index";
}
@RequestMapping(method = RequestMethod.POST)
public String addName(Model model, @ModelAttribute Stamp s){
nDao.addName(s);
return "redirect:/";
}
@RequestMapping(value="/update/{id}", method=RequestMethod.GET)
public String getUpdate(@PathVariable int id, Model model){
Stamp st = (Stamp) nDao.getById(id);
model.addAttribute("s", st);
return "update";
}
@RequestMapping(value="/update/{id}", method=RequestMethod.POST)
public String postUpdate(@ModelAttribute Stamp s){
nDao.updateName(s);
return "redirect:/";
}
のindex.jsp:
<form method = "post" action="${SITE_URL}/">
<div>
<label>Name: </label><input type="text" name="name">
</div>
<input type="submit" value="Submit">
</form>
<h3>List...</h3>
<c:forEach var="sl" items="${sL}">
<li>${sl.name} ${sl.createdAt} ${sl.updatedAt}<a href="${SITE_URL}/detail/${sl.id}">Detail</a><a href="${SITE_URL}/update/${sl.id}">Update</a></li>
</c:forEach>
Update.jsp:
<h1>Update Here...</h1>
<form method = "post">
<div>
<label>Name: </label><input type="text" value="${s.name}" name="name">
</div>
<input type="submit" value="Submit">
</form>
データをデータベースに保存できませんでした。 nullでないプロパティがnullまたは一時的な値を参照しています:com.project.test.entity.Stamp.createdAtエラー。ここで何が問題なの?
テーブルにDDLを追加してください。 – mdeterman
そこに行く...私は早く画像を投稿するために逃した... @ mdeterman – Space
修正する2つのオプションの1つ。 NOT NULL DEFAULT CURRENT_TIMESTAMPを追加するか、Entity Classを削除して更新列を更新します。@Basic(optional = true)[ここをクリック](https://stackoverflow.com/questions/46504448/how-to-insert-data-with-自動的に作成された値と更新された日付使用するspr/46504840#46504840) – mdeterman