Java Can';t为实体设置多个一个一个,具有双重持久性 @存储库 公共接口RoomRepository扩展了Crudepository{ } 从RoomServiceImpl保存: @凌驾 公共房间储藏室(房间){ 返回roomRepository.save(房间); }
我的行动顺序是什么Java Can';t为实体设置多个一个一个,具有双重持久性 @存储库 公共接口RoomRepository扩展了Crudepository{ } 从RoomServiceImpl保存: @凌驾 公共房间储藏室(房间){ 返回roomRepository.save(房间); },java,hibernate,spring-data-jpa,many-to-one,Java,Hibernate,Spring Data Jpa,Many To One,我的行动顺序是什么 @Repository public interface RoomRepository extends CrudRepository<Room, Long> { } From RoomServiceImpl save: @Override public Room saveRoom(Room Room) { return roomRepository.save(Room); } 1。List-sponsorStarts=ne
@Repository
public interface RoomRepository extends CrudRepository<Room, Long> {
}
From RoomServiceImpl save:
@Override
public Room saveRoom(Room Room) {
return roomRepository.save(Room);
}
1。List-sponsorStarts=new-ArrayList();
2.房间=新房间();
3.giveRoom.SetponsorsStart(赞助商启动)//设定赞助商名单表p.1
4.赠品室服务。储藏室(房间)//节省空间
并且启动数据库为空。
我尝试先保存列表中的每个sposorStart,但它们在room_id列中以null保存。
对不起,我知道这应该很简单,但在我的情况下,我做错了什么。
谢谢
cascade=CascadeType。您关联的@OneToMany
端的所有:
@OneToMany(mappedBy=“Room”,fetch=FetchType.EAGER,cascade=CascadeType.ALL)
私有列表发起人start=new ArrayList();
List-sponsorStarts=new-ArrayList();
SponsorStart sponsorStart1=新的SponsorStart();
sponsorStarts.add(sponsorStart1);
// ...
房间=新房间();
//同步关联的双方
发起人开始1.设置室(房间);
会议室设置发起人启动(发起人启动)//设定赞助商名单表p.1
房间。储藏室(房间)//节省空间
另请参见hibernate文档的第1部分
cascade=CascadeType。您关联的@OneToMany
端的所有:
@OneToMany(mappedBy=“Room”,fetch=FetchType.EAGER,cascade=CascadeType.ALL)
私有列表发起人start=new ArrayList();
List-sponsorStarts=new-ArrayList();
SponsorStart sponsorStart1=新的SponsorStart();
sponsorStarts.add(sponsorStart1);
// ...
房间=新房间();
//同步关联的双方
发起人开始1.设置室(房间);
会议室设置发起人启动(发起人启动)//设定赞助商名单表p.1
房间。储藏室(房间)//节省空间
另请参阅hibernate文档。我说过这很简单)我应该设置为彼此的实体,然后保存它!谢谢,添加
addSponsorStart()
和removeSponsorStart()
实用程序方法会更加优雅,每当添加或删除子元素时,这些实用程序方法都会同步两端(请参见文档参考部分中的示例)。我告诉过这很简单)我应该设置到其他实体中,然后保存它!感谢您,添加addSponsorStart()
和removeSponsorStart()
实用程序方法将更加优雅,这些方法可以在添加或删除子元素时同步两端(请参见文档参考部分中的示例)。
@Entity
@Table(name = "sponsors_start")
public class SponsorStart {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private String username;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "room_id")
private Room Room;
@Repository
public interface RoomRepository extends CrudRepository<Room, Long> {
}
From RoomServiceImpl save:
@Override
public Room saveRoom(Room Room) {
return roomRepository.save(Room);
}
1. List<SponsorStart> sponsorStarts = new ArrayList<>();
2. Room room = new Room();
3. giveRoom.setSponsorsStart(sponsorStarts); //set list of sponsors form p.1
4. giveRoomService.saveRoom(room); //save room