java - 编辑正在保留另一个实体,但没有对其进行设置

标签 java jpa

我在使用 JPA 时遇到了一个奇怪的问题:

我有一个实体,并且刚刚添加了与其他实体的关系,因此当我编辑第一个实体时,必须保留另一个对象并将其设置在更新它的第一个实体上。

举例

公司是第一个实体,我刚刚添加了经理实体,因此我的公司现在有一个名为“经理”的新字段,该字段与经理表相关(多对一,因为该经理可以管理一对多公司)。

在我的这个场景的类定义中,我有这样的:

公司.java:

@JoinColumn(name = "manager", referencedColumnName = "id")
    @ManyToOne
    private Manager manager;

Manager.java:

@OneToMany(mappedBy = "manager")
private List<Company> companies;

因此,我将新经理设置为某家公司,当我通过 Remotefacade 进行编辑时,会创建新经理,但不会在前一家公司中设置。

有些奇怪的是我在任何地方都没有cascade.persist注释,但在编辑时被保留。

有人可以帮助我吗:)?

编辑:

这就是我将经理设置为公司的方式:

action.java

Manager m = new Manager();
... (set all the data)

Company c = companyFacade.find(1); // find by ID

c.setManager(m);

companyFacade.edit(c);

最佳答案

您能否显示将经理与公司关联起来的代码?请注意:

  • 您还必须将公司与经理关联起来:例如manager.addCompany(公司)
  • 您确定您的mappedBy 属性设置正确吗? Company 类上有 setAsistene 方法吗?

关于java - 编辑正在保留另一个实体,但没有对其进行设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18499608/

相关文章:

java - JTextPane 追加 HTML 字符串

java - 是否可以针对 XML、DOM 或其他原始结构使用 Mule MEL 表达式?

java - jpql查询: Having problems with case conditions when comparing nullable fields

java - SPRING-DATA-JPA 简单审计不起作用

java - Spring 与 Hibernate 和 JPA 集成 - 一张表不是在启动时创建的,其他表是在启动时创建的

java - JPQL参数类型错误

java - GWTEventService 推送到所有客户端

java - “java”命令有效,但 'javac' 无效

java - 尝试从数据库检索密码值时出错

java - Criteria API JPA 2 - JOIN 导致 MySQLSyntaxErrorException : You have an error in your SQL syntax