我想通過 @Query 的 spring 資料 JPA 更新物體內的關聯物件。有可能這樣做嗎?
@Entity
@Getter
@Setter
public class Person{
@Id
private Long id;
@OneToOne
@NotNull
@JoinColumn(name = "address")
private Address address;
}
@Entity
@Getter
@Setter
public class Address{
@Id
private Long id;
private String state;
}
我在互聯網上看到的所有示例都指向使用 String、int 更新查詢......我正在尋找一種更新查詢的方法,我可以在其中傳遞自定義關聯物件。
@Modifying
@Query("update Person p set p.address =: address)
void update(@Param(value = "address") Address address)
是否可以?我曾嘗試與EntityManager的,保存() JPA的方法為好,但我正在尋找上述種類JPQL查詢。
uj5u.com熱心網友回復:
以下將更新所有Person物體的地址。
@Transactional
@Modifying
@Query("update Person p set p.address = :address")
void update(@Param(value = "address") Address address)
注意@Transactional 注釋并確保Address address引數不應該是瞬態的,即應該已經存在于資料庫中并從那里獲取它
IE
Address address = new Address();
address.setState("blabla");
Address savedAddress = addressRepository.save(address);
personRepository.update(savedAddress); // use the peristed Address entity here.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335933.html
