我的实体:
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "userId")
private Long id;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<UC> owned = new ArrayList<UC>();
}
@Entity
public class UC{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JoinColumn(name = "ukId")
private Long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "userId")
private User user;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "catId")
private Cat cat;
}
@Entity
public class Cat{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "catId")
private Long id;
@OneToMany(mappedBy = "cat", cascade = CascadeType.ALL)
private List<UC> owned = new ArrayList<UC>();
}
这就是我的问题,实际上很少有。
问题1:
我删除了一个Cat对象,设置了cascade类型。所有在Cat中拥有的列表中,因此当我删除Cat对象时,UC中带有Cat的所有记录都将被删除,但我得到“已删除的对象将通过级联重新保存”,这是因为我在UC中与用户有另一个关系,用户将UC存储在列表中。当我从UC中删除Cat对象和记录时,我不想删除用户对象,因此在UC中的@ManyToOne上设置cascade是不允许的。我应该如何操作?在删除Cat之前,我是否应该从用户拥有的列表中删除UC的所有实例?我在UC中的关系比这里显示的要多,如果是这样,我也必须从其他列表中删除实例。
问题2:
类似的情况,但我得到了常规的多对多关系,我想删除连接表记录,而不删除关系的另一端。
这是我的解决方案。首先,我将通过这种方式,为“一家一户”协会设立一个孤儿移除计划。
@OneToMany(mappedBy = "cat", cascade = CascadeType.ALL, orphanRemoval = true)
然后,假设您有一个用户u和一个要删除的Cat c。这段代码应该运行良好
// Remove a cat and update the other entities
Session s = sessionFactory.openSession();
s.beginTransaction();
s.delete(c);
for (UC uc : c.getOwned())
uc.getUser().getOwned().remove(uc);
s.update(u);
s.getTransaction().commit();
s.close();
我需要支持一个涉及以下实体的场景(使用JPA): 用户 一个用户可以有多个帐户,一个帐户可以在多个用户之间共享,这是迄今为止的标准@ManyToMany关系。 一个用户可以为每个帐户拥有一组不同的角色,一个角色可以在多个用户之间共享。 我遵循了这个实践,它解释了一种用额外列映射多对多关联的方法,但我不确定我是否得到了它。 用户实体: 账户实体: 用户帐户实体: 用户帐号: 我正在创建一个新用户并尝
问题内容: Book,User和Review说,我正在构建具有复杂模型的应用程序。 评论包含书籍和用户ID。为了能够搜索至少包含一个评论的“图书”,我已将“图书”设置为“评论”的父级,并且具有这样的路由。但是,我还需要找到撰写包含某些短语的评论的用户。 是否可以同时将书和用户作为评论的父级?有没有更好的方法来处理这种情况? 请注意,我无法更改数据建模的方式/不愿意这样做,因为数据已从持久性数据库传
我是新来laravel的,所以原谅我可能的愚蠢问题。此外,我确实研究了所有其他“类似”的问题,但要么它们没有重现正确的解决方案,要么我真的很难理解。 情景: 我有一个帖子模型和一个主题模型。这就是他们现在的样子。 在岗位上。php 在主题上。php 现在,我需要实现的是: 如果将查询参数传递给请求(即q=Food),我只想返回在主题关系中包含主题食物的帖子,而不返回其他帖子。如果什么都没有通过,那
我有一个OneTo多项关系,我可以插入记录,但不能删除它们,当我试图删除它时,它会遇到“外键约束失败”错误。我使用级联删除孤儿如下,但不工作还。 父类的成员具有以下getter 成员类的父类具有以下getter 我也使用了下面的注释,但不起作用 我的冬眠依赖如下 我删除信息的代码
我有一个名为 Article 的实体类,另一个名为 ArticleTag 的实体。这两个实体是许多多属性关系,这意味着许多文章可以链接到同一个标签,并且许多标签可以与同一篇文章相关联。 在我的文章实体中,我有以下内容: 在我的ArticleTag实体中,我有这个: 当我的控制器被调用来删除一篇文章时,我在我的ArticleDao类中使用了一个方法,该方法基本上正在这样做: 但是,我的文章无法删除。
问题内容: 有三个表:,并且,医院能提供的医疗服务和语言服务。因此,存在两个多对多关系。 简单ERD 现在,我想使用和搜索医院数据。 DaoImpl: 而且,如果我想从三个表中按邮政编码,医疗类型和语言进行搜索,那么如何编写一个jsql。 警告: 错误:org.hibernate.hql.internal.ast.ErrorCounter- 预期加入的路径!希望加入的路径!在org.hiberna