我有两个实体,它们使用一个主键互相引用,主键是一个实体的整数。我不确定我做这件事的方式是否正确。
下面是引用主键id为int的实体
@Entity
@Table(name="michango_kanda")
public class Kmichango {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "kandaMchango" )
private List<Jmichango> jumuiyaMichango = new ArrayList<>();
//Constructor,toString,getter and setter,.......}
下面是我们从上面的实体中将外键设置为Kmichango kandaMchango的实体。
@Entity
@Table(name = "michango_jumuiya")
public class Jmichango {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@ManyToOne
@JoinColumn(name = "kandamchangoID")
private Kmichango kandaMchango;
//Constructor,toString,getter and setter,.......}
这里是表单的一部分,我在这里提交了用户在jumuiya_michango_form.html中提供的数据
<form class="form-horizontal" method="POST" action="/save-michango-jumuiya"
style="max-width: 600px; margin: 0 auto;" >
<div class="control-group">
<label class="control-label" for="kandaMchango">Code Ya Mchango</label>
<div class="select">
<select id="kandaMchango" name="kandaMchango" required="true">
<option value="none" selected disabled hidden >
Chagua Code ya Mchango
</option>
<th:block th:each="kanda : ${kandaMichango}">
<option th:each="text : ${kanda.id}" th:value="${text}" th:text="${text}" ></option>
</th:block>
</select>
</div>
</div>
<input type="submit" value="Submit">
</form>
下面是我的控制器中用于链接到表单和发布数据的两个方法
@GetMapping("/michango/jumuiya/add")
public String addJumuiyaMichango(Model model){
List<Kmichango> kandaMichango = kMichangoRepository.findAll();
List<Jumuiya> jumuiya = jumuiyaRepo.findAll();
model.addAttribute("kandaMichango", kandaMichango);
model.addAttribute("jumuiya", jumuiya);
return "jumuiya_michango_form";
}
@PostMapping("/save-michango-jumuiya")
public String saveJumuiyaMichango(Jmichango jumuiyaMichango, BindingResult result){
if(result.hasErrors()){
System.out.println(result);
return "jumuiya_michango_form";
}
jMichangoRepository.save(jumuiyaMichango);
return "index";
}
在我提交表单后,我在控制台收到以下来自System.out.println(结果)的错误;
BlockQuoteOrg.SpringFramework.Validation.BeanPropertyBindingResult:1错误字段“Kanda MChango”上对象“JMichango”中的字段错误:拒绝值[41];代码[typeMismatch.jmichango.kandamchango,typeMismatch.kandamchango,typeMismatch.com.church.church.entity.kmichango,typeMismatch];参数[org.springframework.context.support.defaultmessageSourceResolvable:代码[jmichango.kandaMchango,kandaMchango];参数[];默认消息[kandaMchango]];默认消息[无法将“java.lang.String”类型的属性值转换为属性“Kanda MChango”所需的类型“com.church.church.Entity.Kmichango”;嵌套异常为org.springframework.core.convert.ConversionFailedException:无法将值“41”从类型[java.lang.String]转换为类型[@javax.persistence.Many转换为一个@javax.persistence.JoinColumn com.church.church.Entity.Kmichango];嵌套异常为
错误很明显,它未能转换值类型,现在我如何解决这个问题,并仍然保持这两个实体的关系?
在jumuiya_michango_form.html中,您有一个select
请将其更改为name=“kandaMchango.id”,因为您实际上希望将所选选项的值映射到kandaMchango对象的id。
我正在关注Spring in Action 5,在按下提交按钮后创建Taco模型时遇到问题。这是我的设计Taco控制器类: 以及我捕获的错误消息: 炸玉米饼实体如下所示: 以及我的配料实体: 这是一个html页面,必须使用所选成分创建新的Taco对象: 我该怎么修理它?谢谢你的预付款。
我是Spring MVC的新手,试图构建一个示例应用程序,我试图将数据保存到一个名为EmployeeDetails的表中,该表与表用户有一对一的关系。提交表单后,我在字段“user”的对象“employee details”中得到了这个错误字段:rejected value[Users];代码[typemismatch.employeeDetails.user,typemismatch.user,
我是SpringMVC的新手。我开发了一个执行选择,插入,更新和删除的示例应用程序。 下面是我的Bean类 下面是我的控制器类 下面是我的JSP页面 现在我面临两个问题。输入值并单击“添加学生”按钮后,收到以下错误。
我想在json中以的形式发布上面的字符串日期,但我收到了400个错误请求。有人能帮忙吗。我使用过,但它也没有帮助我。
这是控制器代码部分: 我收到这条消息: 出现错误(类型=错误请求,状态=400)。无法将类型[java.lang.String]的值转换为所需类型[java.util.Date];嵌套异常为org.springframework.core.convert.conversionfailedexception:无法将值“Wed Jun 08 00:00:00 WET 2016”从类型[java.lan
上面表单的控制器 简单pojo类 这个链接没有帮助我解决类似的问题