Java 如何查找至少包含一个指定标记的所有实体(POST)。弹簧数据
我试图只检索具有特定标记的EntriePost。一个条目可以有许多标记,所以我使用对象列表。但我不知道如何在Controller类中构造一个合适的命令,实际上我恐怕在这里完全迷失了方向 条目实体如下所示:Java 如何查找至少包含一个指定标记的所有实体(POST)。弹簧数据,java,spring,jsp,spring-data,spring-data-jpa,Java,Spring,Jsp,Spring Data,Spring Data Jpa,我试图只检索具有特定标记的EntriePost。一个条目可以有许多标记,所以我使用对象列表。但我不知道如何在Controller类中构造一个合适的命令,实际上我恐怕在这里完全迷失了方向 条目实体如下所示: @Entity public class BlogEntry { @Id @GeneratedValue private Integer id; private String title; @Column(name = "published_date") private Date pub
@Entity
public class BlogEntry {
@Id
@GeneratedValue
private Integer id;
private String title;
@Column(name = "published_date")
private Date publishedDate;
@ManyToMany
@JoinTable
private List<TagBlog> blogTags; /* Multiple tags to one entry */
在welcome.jsp文件中,我想在箭头-->之间遍历分配给特定entrypost的整个标记列表,如下面的示例所示,您有什么理由要将整个TagBlog对象发送给控制器吗?为什么不只是标记ID或标记文本?例如
@RequestMapping(value="/welcome")
public String retrieveTaggedEntry(Model model, @RequestParam List<String> tags) {
// Do something with your tags
}
没有具体原因。让我检查一下我能用List做些什么,以及它在控制器类中如何工作。看起来我不能使用List,因为它抛出了一个错误:由:org.hibernate.MappingException引起:无法确定:java.util.List的类型,在table:BlogEntry,列:[org.hibernate.mapping.ColumnstringTag]
public List<BlogEntry> findAllByTags(List<TagBlog> tag){
List<BlogEntry> blogEntry = entryRepository.findByTagBlogIn(tag);
return blogEntry;
}
@RequestMapping(value="/welcome")
public String retrieveTaggedEntry(Model model, ?List of tags?){
model.addAttribute("entriesWithTag", entryService.findAllByTags(TagBlog tag));
return "redirect:/welcome.html";
}
<c:forEach items="${entries}" var="entry"> <!--"entries" refers to List of BlogEntry-->
<table>
<tr>
<td>Entry No. ${entry.id }</td>
<td>${entry.title}</td>
<td>
Tags: ---> #${entry.? blogTag.tag ?}, <---
</td>
<td>Published: ${entry.publishedDate}</td>
<td>
<spring:url value="/delete_entry/${entry.id}.html" var="url" />
<a href="${url}">Delete</a>
</td>
</tr>
</table>
</c:forEach>
@RequestMapping(value="/welcome")
public String retrieveTaggedEntry(Model model, @RequestParam List<String> tags) {
// Do something with your tags
}