我正在使用Thymeleaf和hibernate创建一个简单的SpringBootWeb应用程序。所以计划从产品实体中显示产品类别,其中每个类别属于多个产品,一个产品只有一个类别。
希望显示所有产品,但有些产品无法使用嵌套属性显示产品类别。
它给出了以下错误
此应用程序没有/error的显式映射,因此您将其视为回退。
Sun 1月31日03:46:01 CET 2021有一个意外错误(type =内部服务器错误,状态=500)。模板解析(模板:“类路径资源[templates/products.html]”)org时出错。百里香。例外情况。TemplateInputException:在组织上的模板解析(模板:“类路径资源[templates/products.html]”)过程中发生错误。百里香。模板分析器。加成AbstractMarkupTemplateParser。org上的parse(AbstractMarkupTemplateParser.java:241)。百里香。模板分析器。加成AbstractMarkupTemplateParser。org上的parseStandalone(AbstractMarkupTemplateParser.java:100)。百里香。发动机模板管理器。org上的parseAndProcess(templatmanager.java:666)。百里香。模板引擎。进程(TemplateEngine.java:1098)位于org。百里香。模板引擎。进程(TemplateEngine.java:1072)位于org。百里香。Spring五号。看法百里香电子海景。renderFragment(ThymeleafView.java:366)位于org。百里香。Spring五号。看法百里香电子海景。在org上渲染(ThymeleafView.java:190)。springframework。网状物servlet。调度员服务。在org上呈现(DispatcherServlet.java:1393)。springframework。网状物servlet。调度员服务。org上的processDispatchResult(DispatcherServlet.java:1138)。springframework。网状物servlet。调度员服务。doDispatch(DispatcherServlet.java:1077)位于org。springframework。网状物servlet。调度员服务。doService(DispatcherServlet.java:962)位于org。springframework。网状物servlet。FrameworkServlet。org上的processRequest(FrameworkServlet.java:1006)。springframework。网状物servlet。FrameworkServlet。javax上的doGet(FrameworkServlet.java:898)。servlet。http。HttpServlet。服务(HttpServlet.java:626)位于org。springframework。网状物servlet。FrameworkServlet。javax上的服务(FrameworkServlet.java:883)。servlet。http。HttpServlet。服务(HttpServlet.java:733)位于org。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。org上的internalDoFilter(ApplicationFilterChain.java:231)。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。doFilter(ApplicationFilterChain.java:166)位于org。阿帕奇。公猫websocket。服务器WsFilter。doFilter(WsFilter.java:53)位于org。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。org上的internalDoFilter(ApplicationFilterChain.java:193)。阿帕奇。卡塔琳娜。果心ApplicationFilterChain。doFilter(ApplicationFilterChain.java:166)位于
@Entity
public class Product {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(length=128, nullable=false,unique=true)
private String name;
private float price;
@ManyToOne
@JoinColumn(name = "category_id")
public Category category ;
public Product() {}
public Product(Integer id) {
super();
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
}
@Controller
public class ProductController {
@Autowired
private ProductRepository ProductRepo;
@Autowired
private CategoryRepository categoryRepo;
@GetMapping("products/new")
public String showProductForm(Model model) {
List<Category> listCategories=categoryRepo.findAll();
model.addAttribute("product", new Product());
model.addAttribute("listCategories", listCategories);
return "product_form";
}
@PostMapping("/products/save")
public String saveProduct(Product product) {
ProductRepo.save(product);
return "redirect:/";
}
@GetMapping("/products")
public String listProducts(Model model) {
List <Product> listProducts=ProductRepo.findAll();
model.addAttribute("listProducts",listProducts);
return "products";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>List Categories </title>
<link rel="stylesheet" type="text/css" th:href="@{/webjars/bootstrap/css/bootstrap.min.css}" />
</head>
<body>
<div class="container text-center">
<div><h1> Products List</h1></div>
<div>
<table class="table table-bordered">
<thead class="thead-dark">
<th>ID</th>
<th>Name</th>
<th>Price</th>
<th>Category</th>
</thead>
<tbody>
<th:block th:each="product : ${listProducts}">
<tr>
<td>[[${product.id}]]</td>
<td>[[${product.name}]]</td>
<td>[[${product.price}]]</td>
<td>[[${product.category.name}]]</td>
//error in displaying product category name
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
错误在这里:
@ManyToOne
@JoinColumn(name = "category_id")
public Category category ;
您可以在产品实体上尝试以下操作:
@ManyToOne(optional=true)
private Category category;
关于类别实体:
@OneToMany(mappedBy="category")
private List<Product> product;
我有一个名为employee_comp_field的表,其中提供了薪资字段 然后,我有另一个表,其中员工工资数据存储emp_compensation每个字段。正如你所看到的emp_id 10有三套记录,因为他在同一年获得了三次加薪(year_id=101),这可以通过salary_order领域来识别。 我想用最大工资确定所有雇员的名单,我的期望输出如下: emp_id10号得到了三次加薪……所以
我正在尝试使用Angular检索嵌套Firestore数据库中所有用户的数据。数据库看起来如下所示:用户(id)->posts(id)-{description:这是一个图像,image:imageURL}。
我想在Android中使用列表视图显示用户的家庭数据。这是我的GSON: 这是我的FamilyAdapters.java: 这是我的家人。java: 这个是ApiClient.java: 这个是我的ListKeluarga.java活动,将显示家庭列表: 这是我的MainInterface.java: 我已经尝试为Family.java.中的每个变量使用字符串,但它仍然显示了这一点: e/recy
问题内容: 您有任何想法如何从对象中检索全部吗?我需要将 for循环 更改为 流 “同类”代码。 非常感谢任何帮助 问题答案: 您可以与涉及的串联和三元运算符混合使用,例如:
我有三个类具有类层次结构 > < Li > < p > < code > parent class . Java 具有用于此ChildClass1的属性,它还使用来自父类的一些常见属性 < code>ChildClass2扩展ParentClass 具有用于此子类2的属性,它还使用父类中的一些公共属性 所有这些属性都包含在两列表中 现在我不确定如何从Hibernate继承加载它们? 为愚蠢的问题道
我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地: