栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring实战运行第六章代码笔记(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring实战运行第六章代码笔记(1)

一、连表查询时Unknown column ‘ingredient0_.taco_id’ in 'field list’错误

Taco类中有Ingredient相关字段:

 @ManyToMany(targetEntity=Ingredient.class)
  @Size(min=1, message="You must choose at least 1 ingredient")
  private List ingredients;

依据Taco_Ingredients表进行连表查询:


但是问题在于hibernate在连表查询时,默认join table中的字段为taco_id和ingredient_id,这与实际join table中的column名称不符合。

解决方案:指定join table中的column名
@ManyToMany(targetEntity=Ingredient.class)
  @Size(min=1, message="You must choose at least 1 ingredient")
  @JoinTable(name = "Taco_Ingredients",
          joinColumns = @JoinColumn(name = "taco"),
          inverseJoinColumns = @JoinColumn(name = "ingredient"))
  private List ingredients;
二、对于Ingredient中的枚举类型字段,无法从ResultSet中获取,Could not read entity state from ResultSet

因为hibernate默认将枚举类型字段的EnumType设置为EnumType.ORDINAL

显然,从mysql中获取到的type为string类型,无法转换为序数

解决方案:为Ingredient类中的type字段指定EnumType
  @Enumerated(EnumType.STRING)
  private final Type type;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/358038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号