- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Spring MVC 项目中,我创建了两个类,它们以 ManyToMany 方式连接,如下所示:
用户(ID、余额、姓氏和名字) -> 租赁(用户ID, 电影ID) <- 电影( ID、标题、导演和长度)
阅读有关如何执行此操作的信息后,我最终得到了这两个类的代码:
@Entity
@Table(name = "users")
public class Users implements Serializable {
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "Rentals",
joinColumns = { @JoinColumn(name = "user_id") },
inverseJoinColumns = { @JoinColumn(name = "movie_id") } )
private Set<Movies> movies = new HashSet<>();
//--------------------------
@Entity
@Table(name = "movies")
public class Movies implements Serializable {
@ManyToMany(fetch = FetchType.LAZY,
cascade = { CascadeType.PERSIST, CascadeType.MERGE },
mappedBy = "movies")
private Set<Users> users = new HashSet<>();
不仅如此,我还在我的属性中添加了 hibernate.ddl-auto = create
和 hibernate.hbm2ddl.auto=create-drop
,以便这些表自动创建并在我的 PostgreSQL 数据库中更新。
问题是这样的。我的 MVC 必须能够创建、编辑、更新和删除任何电影、用户和租赁。我知道这可以替换为:选择用户,选择电影,将电影添加到用户的电影集中,并将用户添加到电影的用户集中并保存。删除或编辑也是如此。
但是我该如何在 JSP 中解决这个问题呢?以下是我在使用 Rentals 类时的做法,该类具有 Users 和 Movie 的对象:
<form:form action="${addAction}" modelAttribute="rental">
<table><tr><td>
<form:label path="user.usrid">
<spring:message text="ID User"/>
</form:label>
</td><td>
<form:select path="user.usrid">
<form:options items="${listUsers}" itemValue="usrid" itemLabel="fullName"/>
</form:select>
</td></tr><tr><td>
<form:label path="movie.movid">
<spring:message text="ID Movie"/>
</form:label>
</td><td>
<form:select path="movie.movid">
<form:options items="${listMovies}" itemValue="movid" itemLabel="title"/>
</form:select>
</td></tr>
<tr><td colspan="2">
<input type="submit" value="<spring:message text="Add Rental"/>" />
</td></tr>
</table></form:form>
Controller 有这些方法:
@RequestMapping(value = "/rentals", method = RequestMethod.GET)
public String listRentals(Model model) {
model.addAttribute("rental", new Rentals());
model.addAttribute("listUsers", this.murService.getUsers());
model.addAttribute("listMovies", this.murService.getMovies());
model.addAttribute("listRentals", this.murService.getRentals());
return "rental";
}
@RequestMapping(value = "/rentals/add", method = RequestMethod.POST)
public String addRental(@ModelAttribute("rental") Rentals rnt) {
if (!checkIfExists(rnt)) {
this.murService.addRental(rnt);
} else {
System.out.println("Couldn't be added, rent already exists.");
}
return "redirect:/rentals";
}
我对 Rentals 对象使用了 ModelAttribute,但现在我没有该类,ModelAttribute 应该指向什么?如果我的想法是正确的,我如何发送两个 ModelAttributes,一个作为用户,一个作为电影?或者有什么方法可以满足我的需要?
最佳答案
没有理由你不能继续使用Rental
类,你只需要更多地考虑你的数据库。
1) User
、Movie
是实体。
2) Rental
是 View 对象的一部分。
您想列出所有出租吗?读取您的整个数据库,并为每个用户创建每部电影的租赁。将其传递给您的模型。您想创建新的租赁吗?从数据库中选择您租借的用户并将电影添加到电影
集中。
所以,现在 Rental 是 View 对象的一部分,不需要持久化。
关于java - 使用 Spring MVC、JPA 和 Hibernate 添加 ManyToMany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58071368/
经过大量搜索但没有成功后,我决定在这里提出我的问题,所以我将首先举一个例子来说明问题。 我有 4 个类(class) A - B - C - D我在 A 和 B 之间有一个名为 A_B 的多对多关系(
该应用程序允许用户选择某些关键字(我们监控 TwitterStream) 每个关键字都包含包含其关键字的推文 ID 列表。 public class Keyword extends Model { @
我有 2 个实体:User 和 UsersList。 @Entity @Table(name = "USERS") public class User { @Id @Generated
嘿,我有一个关于人际关系的问题。 我希望用户有友谊。所以一个用户可以成为另一个用户的 friend 。我假设我需要通过 Friendship 表使用 ManyToManyField。但我无法让它工作。
我需要让帖子接受我需要的尽可能多的语言,所以我有两个模型 post和 language在后模型中: public function languages(){ return $this->bel
在我的一个模型中,我有一个属于多条配置的类别字段。 我想知道如何在模板中获得以下输出。 第 1 类、第 2 类、第 3 类和第 4 类 所以基本上用逗号分隔每个类别,除了最后一个用“和”替换 最佳答案
我有一个用于 User 和 House 的多对多表,称为 user_house。我不想只添加两列:user_id 和 house_id,而是添加 3 列:例如,action、created_at、up
我正在做一个食品卡车 API,只是为了学习 spring-boot。在做的过程中,遇到了关于注释 @Manytomany 如何工作的问题。 因为这个项目只是为了学习我想使用Google CLoud F
我有一个ManyToMany链接和一个链接三个对象的外键。 [A]>-----[C] A 可以属于多个 B,反之亦然。但是,A 只能属于具有同一父对象 C 的 B 对象。 我正在尝试在模型的 clea
如果我有两个模型与直通模型具有多对多关系,我如何从该“直通”表中获取数据。 class Bike(models.Model): nickname = models.CharField(max_l
我已经处理我的用户 - 角色 - 映射问题很长一段时间了,但我目前陷入这个问题: 调用 init 方法失败;嵌套异常是 org.hibernate.AnnotationException:使用 @On
我在坚持方面遇到了问题。我有一个膳食类(class),其中有产品列表。在 Product 类中是一个 Meals 列表——@ManyToMany 关系。 当我尝试保存它时,编译器想要保存每个产品,但随
我正在学习 Spring JPA,我从将对象映射到表开始。我对 OneToOne 和 OneToMany 关系没有任何问题,但我不太明白为什么我无法保留与 ManyToMany 关系相关的对象。我有一
我在 MySQL 中创建了表:role tabel 、 object_label 和 role_object_label (链接表) 我定义了@ManyToMany,但出现异常。我的代码有什么问题?
我有一个包含多个延迟初始化集合的类,其中包括 OneToMany 和 ManyToMany。 ManyToMany 关系是单向的,因此 Expert 类没有 Project 集合。 @OneToMan
我阅读了很多关于这个问题的链接: How to save a django model with a manyToMany Through relationship, AND regular many
我已经实现了一个多图像上传方法,但我想知道使用哪些字段/小部件能够将图像 ID 与表单一起传递。 在填写表单时异步添加图像,并且在提交时,这些图像将被分配给表单正在添加/编辑的对象。我怎样才能传递这个
我遇到了一个尚未解决的问题。 环境: MySQL 5 操作系统 hibernate 4.1 Spring 3.1 Spring Data JPA 我有两个处于多对多关系的实体。为此,我使用带有外键的联
我有两个实体 Post 和 Tags 这个实体有 ManyToMany 的关系,很多帖子有很多标签,很多标签有很多帖子,并且有实体类别我有一个类别的很多帖子,我需要创建 Action 来查找类别的帖子
我的类(class)类(class) @Entity public class Course { @Column @Id private String courseCode;
我是一名优秀的程序员,十分优秀!