我創建了具有自加入 ManyToMany 關系的 Friends 表。朋友物體具有朋友串列,其結果是表示多對多關系的第三個表。
public class Friends {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String name;
@ManyToMany
@JoinTable(
name = "friends_list",
joinColumns = @JoinColumn(name = "friends_from"),
inverseJoinColumns = @JoinColumn(name = "friends_to"))
private List<Friends> friends;
}
我想在連接表上創建一個查詢。我創建了像這樣的查詢
@Query(value="Select * from friends_list f where f.friends_from=:id", nativeQuery=true)
public List<Friends> findFriendsById(@Param("id") Long id);
現在,當我提出創建資源的請求時,它會引發以下錯誤。
@RestController
public class FriendsController {
@Autowired
private FriendsService friendsService;
@PostMapping("/friends")
public Friends createFriends(@RequestBody Friends frnd)
{
return friendsService.createFriends(frnd);
}
@GetMapping("/friends/{id}/distance/{k}")
public List<Friends> getFriendsAtDistanceK(@PathVariable("id") Long id,@PathVariable("k") int k)
{
return friendsService.getFriendsAtDistanceK(id, k);
}
}
要求
{
"id":1,
"name":"sujeet",
"friends":[
{
"friends_from":1,
"friends_to":2
}
]
}
我已經創建了兩個沒有朋友串列的朋友。我正在嘗試用朋友串列添加朋友。但它顯示以下錯誤。
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.learn.friends.entity.Friends
at org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:347) ~[hibernate-core-5.6.5.Final.jar:5.6.5.Final]
uj5u.com熱心網友回復:
您是否嘗試過@Cascade({ CascadeType.SAVE_UPDATE, CascadeType.MERGE, CascadeType.PERSIST})為此使用注釋?此解決方案的來源在這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/441645.html
上一篇:檢測向量是否是C 中的回文
下一篇:原因:java.lang.IllegalStateException:在查詢執行期間提供的引數串列中找不到查詢引數creationDateTime
