Reputation: 5
Entity Exercise Master
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@EnableAutoConfiguration
@Entity
@Table(name = "exercise_master")
public class Exercise_Master {
private static final long serialVersionUID =1L;
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name="Ex_id")
private Integer Ex_id;
@Column(name="Problem_statement")
private String prob_statement;
@OneToMany(cascade=CascadeType.ALL, targetEntity = Vm_Master.class)
@JoinColumn(name="fk_Ex_id",referencedColumnName="Ex_id")
private List<Vm_Master> vm_master;
public Integer getEx_id() {
return Ex_id;
}
public void setEx_id(Integer ex_id) {
Ex_id = ex_id;
}
public String getProb_statement() {
return prob_statement;
}
public void setProb_statement(String prob_statement) {
this.prob_statement = prob_statement;
}
public List<Vm_Master> getVm_master() {
return vm_master;
}
public void setVm_master(List<Vm_Master> vm_master) {
this.vm_master = vm_master;
}
}
another entity Vm_master
import org.springframework.transaction.annotation.Transactional;
@Entity
@Transactional
@Table(name="vm_master")
public class Vm_Master {
private static final long serialVersionUID =1L;
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
@Column(name="vm_id")
private Long Vm_id;
@Column
private String Vm_uuid;
@Column
private String Vm_name;
@ManyToOne
@JoinColumn(name="fk_Ex_id")
private Exercise_Master exercise_master;
public Long getVm_id() {
return Vm_id;
}
public void setVm_id(Long vm_id) {
Vm_id = vm_id;
}
public String getVm_uuid() {
return Vm_uuid;
}
public void setVm_uuid(String vm_uuid) {
Vm_uuid = vm_uuid;
}
public String getVm_name() {
return Vm_name;
}
public void setVm_name(String vm_name) {
Vm_name = vm_name;
}
public Exercise_Master getExercise_master() {
return exercise_master;
}
public void setExercise_master(Exercise_Master exercise_master) {
this.exercise_master = exercise_master;
}
}
Repository of both entity
public interface Exercise_MasterRepo extends JpaRepository<Exercise_Master,Long>{
}
//
public interface Vm_MasterRepo extends JpaRepository<Vm_Master, Long>{
}
Controller
@PostMapping("/saveExercise")
public String saveExercise(@ModelAttribute Exercise_Master ex,@ModelAttribute Vm_Master vm)
{
exer_repo.save(ex);
vm_repo.save(vm);
return "redirect:/AddExercise";
}
HTML Page
<form th:action="@{/saveExercise}" th:object="${ex}" method="POST">
<div class="form-group">
<label for="prob_statement">Problem Statement :</label>
<textarea class="form-control" id="prob_statement" name="prob_statement" rows="2" required ></textarea><br>
<label for="Vm_name">Vm_name:</label>
<textarea class="form-control" id="Vm_name" name="Vm_name" required ></textarea><br>
<label for="Vm_uuid">Vm_uuid:</label>
<textarea class="form-control" id="Vm_uuid" name="Vm_uuid" required ></textarea><br>
<button type="submit" id="submit" class="btn btn-primary">Save</button>
</div>
</form>
while inserting the of all field in html page value foreign key of vm_master which is mapped to primary key of Exercise_master is not getting the value. all the other value are getting store in the database.
Upvotes: 0
Views: 42
Reputation: 166
You are not setting anything to the exercise_master field in the Vm_master entity. There's no way for vm_master to know that you are trying to map the exercise master with it. You'll need to set exercise_master field in the Vm_master object before saving the vm_master. Try doing something like this
@PostMapping("/saveExercise")
public String saveExercise(@ModelAttribute Exercise_Master ex,@ModelAttribute Vm_Master vm)
{
exer_repo.save(ex);
vm.setExercise_master(ex);
vm_repo.save(vm);
return "redirect:/AddExercise";
}
Let me know if this helps.
Upvotes: 0