gpt4 book ai didi

java - 加入 JPA 更新

转载 作者:行者123 更新时间:2023-11-30 06:25:44 26 4
gpt4 key购买 nike

我希望这是一个简单的 JPA 问题。假设我有以下类结构:

@Entity
@Table(name="foo_table")
class Foo{
@Id @Column(name="ID")
String id;
...
@ManyToOne()
@JoinColumn(name="BAR_ID")
Bar bar;
}

@Entity
@Table(name="bar_table")
class Bar{
@Id @Column(name="ID")
String id;
@Column(name="COL3")
String col3;
}

场景:假设我想更新与“Foo”记录关联的“Bar”。

这是我目前使用的查询:

EntityTransaction tx = em.getTransaction();
tx.begin();
int rowsUpdated = em.createQuery("UPDATE Foo f SET bar = :bar " +
"WHERE f.id = :fooId").
setParameter("fooId", fooId).
setParameter("bar", newBar).
executeUpdate();
tx.commit();

问题:是否可以在仅更新 foo_table 而不是 bar_table 的 JPA 更新中执行此操作。 DBA 不想给我 bar_table 的更新权限,但 JPA 似乎想要进行“深度”更新并同时更新 foo_table 和 bar_table。谢谢!

最佳答案

此解决方案也有效:

@ManyToOne()
@JoinColumn(name="BAR_ID", updatable=false)
Bar bar;

关于java - 加入 JPA 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com