当前位置: 首页 > 知识库问答 >
问题:

如何使用hibernate更新MySQL数据库中的字段

景成和
2023-03-14

所以,我的程序中有公司和员工实体。雇员为公司工作,在雇员表中有company_id(外键),我跟踪某些雇员为哪个公司工作。现在,如果我想更新该字段,如何更改公司员工正在工作?

@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer employeeId;
    @NotNull
    private String name;
    private int authority=2;
    @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH, CascadeType.REFRESH })
    @JoinColumn(name = "company_id", insertable = false, updatable = true)
    private Company company;
//getters and setters


@Entity
public class Company {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer companyId;
    @NotNull
    private String name;
    private final int authority = 1;
//getters and setters

我想更新员工类中的company_id,使用字段int companyId来引用该列,但是它不起作用。在员工服务实施中。类如果我想更新该列(这意味着员工不是为公司工作,或员工更改了公司),我必须调用公司类,这不是我想在员工表中更改信息的方式。有什么建议如何更新该字段吗?这是我在员工资源库界面中的查询:

@Query("update Employee e set e.company_id=:company_id where e.employee_id=:employee_id")
void updateEmployeeCompany (@Param ("employee_id") Integer employeeId, @Param("company_id") Integer companyId);

共有1个答案

姚高爽
2023-03-14

尝试对参数使用一个额外的注释,如下面的代码所示:

@Modifying(clearAutomatically=true)

默认情况下,EntityManager不会自动刷新任何更改。

 类似资料:
  • 我试图在一次提交中实现多个更新。我有一个包含许多行的表,并且希望能够通过切换到下一个插入框来更新每行中的一个字段。 我的代码是这样的:-//start a table echo'; 当我打印$\u POST数组时,一切都很好,但是变量为Null。我知道我不能在多个阵列上进行foreach(至少我不认为我可以),那么我还缺少其他技巧吗?我离这里不远了,因为$u Post打印中有正确的数据。 顺便说一

  • 问题内容: update 我可以创建我的数据库架构,它会自动添加属性,约束,键等。但是,更新数据库架构又如何呢?如果我从实体中删除了某些属性,hibernate则不会删除它,或者如果我更改了某些约束,则hibernate不会触及已经创建的约束… 那么,有没有一种方法可以使hibernate状态真正更新数据库架构? 谢谢。 问题答案: 我们为自己创建了一个工具,该工具创建了必要的数据库列和表,并将其

  • 我已经读到,使用hibernate的二级缓存,它可以通过减少数据/对象检索的数据库命中来提高应用程序的性能。 然而,hibernate如何确保二级缓存和数据库中的数据是最新的。 例如: 假设下面的类是entity并持久化到DB中。 现在,如果我们启用了二级缓存,我知道如果我们打开不同的会话,那么每个会话都将命中二级缓存以检索对象值。 现在,如果数据库中的数据发生更改(例如,对于id=1的行),例如

  • 本文向大家介绍Python的mysql数据库的更新如何实现,包括了Python的mysql数据库的更新如何实现的使用技巧和注意事项,需要的朋友参考一下 Python的mysql数据库的更新           Python的mysql数据库的更新操作,在实际应用项目中会用到更新数据库,更新过程中可能会出现数据丢失或者数据错乱等系统性的问题,还希望大家正确操作, 一 代码 二 运行结果 以上就是Py

  • 是否可以在程序运行时更新数据库架构?我使用过ddl自动更新,但它有时不会添加或删除列,所以我必须编辑为,然后返回进行架构更新。为什么它不一致地更新架构,我宁愿在接近生产之前不使用迁移工具。因此,理想情况下,当我向实体添加字段或删除它时,它应该在下次运行程序时尝试更新方案。

  • 我想用AJAX和Laravel5.2框架更新数据库表列。我有一个按钮,当我点击该按钮时,它会将一列从更新为。我还使用sweetAlert插件进行弹出式设计。我找了很多。但我没有找到完美的程序。我试过这样做: 路线: WinnerController: 视图中的脚本: 刀片: 刀片前端: 这是更新栏,但更新后它重定向了另一个页面,它只显示弹出它不需要提交弹出的确认按钮。有办法这么做吗?有人能回答我下