- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 Goal
实体,它与 Tag
具有多对多关系。这里的Goal
是我拥有的实体。我正在使用 JPA 来坚持。当我使用现有的 Tag
保存 Goal
时,它给出了 PersistentObjectException
。其他场景,例如使用新的 Tag
的 New Gaol
、使用现有的 Tag
编辑现有的 Goal
、使用新的 Tag
的现有 Goal
都工作正常。下面是我的实体结构:
@Entity
@Table(name = "goal")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "goal")
public class Goal implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToMany(cascade = {
CascadeType.MERGE,
CascadeType.PERSIST,
},targetEntity = Tag.class)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@JoinTable(name = "goal_tag",
joinColumns = @JoinColumn(name="goals_id", referencedColumnName="ID"),
inverseJoinColumns = @JoinColumn(name="tags_id", referencedColumnName="ID"))
private Set<Tag> tags = new HashSet<>();
//getters & setters
@Entity
@Table(name = "tag")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "tag")
public class Tag implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private String id;
@ManyToMany(mappedBy = "tags")
@JsonIgnore
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Goal> goals = new HashSet<>();
//getters & setters
public class GoalServiceImpl implements GoalService{
private final Logger log = LoggerFactory.getLogger(GoalServiceImpl.class);
@Inject
private GoalRepository goalRepository;
@Inject
private GoalMapper goalMapper;
@Inject
private GoalSearchRepository goalSearchRepository;
@Inject
private TagRepository tagRepository;
/**
* Save a goal.
*
* @param goalDTO the entity to save
* @return the persisted entity
*/
public GoalDTO save(GoalDTO goalDTO) {
log.debug("Request to save Goal : {}", goalDTO);
Goal goal = goalMapper.goalDTOToGoal(goalDTO);
goal = goalRepository.save(goal);
GoalDTO result = goalMapper.goalToGoalDTO(goal);
//goalSearchRepository.save(goal);
return result;
}
}请帮帮我。
最佳答案
当您尝试使用save
时,持久性提供程序尝试级联的操作是PERSIST
。当您尝试保留一个已存在的分离实体时,您最终会遇到该异常。
由于您在该关系上设置了 MERGE 级联选项,因此我建议使用合并而不是持久:
goal = goalRepository.merge(goal);
现在,如果您的目标是一个新实体,它将被持久化,并且分离的标签实体将被合并(如果持久化提供程序发现状态发生变化,则会更新)。
关于java - PersistentObjectException : detached entity passed to persist: com. 边缘.le.domain.Tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42922783/
我有一个非常基本的 JAX-RS 服务(下面的 BookService 类),它允许创建 Book 类型的实体(也在下面)。 POST负载 { "acquisitionDate": 14188
此处为 Spring Boot/Hibernate/JPA/MySQL。我有以下两个 JPA 实体: @MappedSuperclass public abstract class BaseEntit
我有一个引用实体 Bar 的实体 Foo: @Entity public class Foo { @OneToOne(cascade = {PERSIST, MERGE, REFRESH},
我尝试了线程中提到的许多事情。但似乎没有一个能解决我的问题。请告诉我哪里出错了。 模型 @Entity public class MySession { @Id @GeneratedV
我正在尝试连接 MySQL 数据库并向数据库插入一个新用户。我的数据库名称是 bookstoredb,表名称是 users。我尝试使用 hibernate 和 jpa 创建模型类,但我收到 Persi
我在我的项目中使用 Hibernate。服务器启动时出现错误: org.hibernate.PersistentObjectException: detached entity passed to p
我正在开发 Spring-boot+ ReactJs 应用程序。基本上我有 2 个具有一对多关系的实体(品牌和系列)。 @Entity @Table(name = "brands") public c
这是关系 @OneToOne(optional = true, fetch = FetchType.LAZY, cascade = CascadeType.PERSIST ) @Join
JPA:多对多连接。 场景: 多个产品可以保存在多个类别下。喜欢:芒果可以作为水果类和沙漠类。 Product == [COMMODITY] Category == [GENRE] 异常: detac
我有两个表(即 Hibernate 中的实体),它们的关联如下: @Entity @Table(name = "table_one") public class TableOne { pri
我在一个 JPA 项目中有 2 个实体: 一个类别和一个问题。所以每个类别都会有一个问题列表,每个问题都是一个类别的一部分(一对多关系)。我通过两个实体中的设置/添加方法来管理双向关系: 问题:
在 Hibernate 中使用 JPA,运行以下代码时出现异常。我第一次运行它时,一切正常,数据已插入数据库。第二次,应该更新数据的时候,失败了: @AdminTx public void proce
我已经成功地用 hibernate 编写了我的第一个主子示例。几天后我又拿了它并升级了一些库。不知道我做了什么,但我再也无法让它运行了。有人可以帮我找出返回以下错误消息的代码有什么问题吗: org.h
当我尝试在注册期间保存用户对象时,出现以下错误 用户服务 > @Service public class UserServiceImpl implements UserService { > >
我正在使用 hibernate orm 填充数据库,并且无法传递多个对象。 我尝试在对象集合中使用级联合并,从oneToMany重新组织到manyToMany关系,但似乎问题与hibernate无关.
我正在使用 Spring Roo 生成基于表(在 MS SQL Server 上创建)的实体。以下是我的sql脚本: CREATE TABLE [dbo].[JMSMessage]( [Me
我正在尝试在数据库中保留一个实体类,为此我为我的类尝试了几种不同的实现,但仍然面临错误(但不同的错误)。我的实体类现在是这样的: @Entity @Table(name="pagina") publi
我收到异常 org.hibernate.PersistentObjectException:传递给持久化的分离实体。从这个论坛和其他地方的众多帖子中,我了解到这种情况发生在两种情况下(不考虑一对一注释
我正在创建一个简单的应用程序,用于使用 Java JPA 向表中插入一行(如果表不存在,请创建它)。 我附上了它的可运行示例的一些代码。 这是我得到的异常和堆栈跟踪: EXCEPTION -- > o
我对 Spring 还很陌生,我一直在使用 this帮助我建立 @ManyToMany 关系的教程。我试图在 User 和 Role 之间建立多对多关系,然后在 Role 和 Permission 之
我是一名优秀的程序员,十分优秀!