html - 如何使用 FreeMarker 显示实体?
问题描述
我有实体
@Entity
@Table(name="fights")
public class Fight {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long fightid;
@OneToMany(mappedBy = "fight", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Sportsman> sportsmans;
private Long identifWin;
private Long identifEvent;
/* getters and setters */
}
和控制器
@GetMapping("/fights")
public String getAllFights(Model model) {
List fights = fightServise.getAllFight();
model.addAttribute("fights", fights);
return "fights";
}
我不知道如何使用 FreeMarker 显示此实体。这段代码显示了一些难以理解的东西:
<form method="get" action="/fights">
<#list fights as fight>
${fight}
<#else>
No fight
</#list>
如果我访问单个字段,则会出现异常。
reeMarker 模板错误(DEBUG 模式;在生产中使用 RETHROW!):以下已评估为 null 或缺失:==>fight.fightid [in template "fights.ftl" at 第 3 行第 11 列]
数据库中存在值
更新
第二个实体:
@Entity
@Table(name = "sportsmans")
public class Sportsman {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
private String alias;
private int growth;
private int weight;
private int lengthOfHands;
private int countOfLose;
private int countOfWin;
private int countOfDraw;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="fightid")
private Fight fight;
/* getters and setters */
}
解决方案
<form method="get" action="/fights">
<#list fights as fight>
<#list fight.getSportsmans() as b>
${b.getFirstName()}
</#list>
<#else>
No fight
</#list>
推荐阅读
- elasticsearch - 具有 Grok 模式 DATESTAMP_RFC2822 的 ElasticSearch 摄取管道
- mysql - 删除连接到 2 个表的条目
- angular - 打字稿模块增强应该如何正确导入/包含到角度库或应用程序中?
- javascript - 如何遍历数组中的特定键值对
- haskell - Haskell QuickCheck 在函数中生成值
- python - 给定的python代码有什么问题?
- python - 将 2+ mock.patch 组合成一个
- ruby-on-rails - ActiveStorage 克隆附件
- recaptcha - 寻找非谷歌验证码解决方案
- node.js - 摩卡抱怨 done() 即使它被使用