我有过
通过USER_LOCATION表,用户和位置之间存在着多到多的关系.下面是我在User.java中的映射:
//bi-directional many-to-many association to Location
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
name="user_location"
, joinColumns={
@JoinColumn(name="USER_ID")
}
, inverseJoinColumns={
@JoinColumn(name="LOCATION_ID")
}
)
private List<Location> locations;当我保存一个用户时,我只有来自前端的USER.LOCATION.LOCATION_ID,并且没有其他的LOCATION对象字段。我只想插入到USER_LOCATION表中。但是SpringDataJPA正在尝试insert into LOCATION with INSERT INTO LOCATION (CITY_ID, COUNTRY_ID, STATE_ID) VALUES (?, ?, ?) bind => [null, null, null]
数据库中预先填充了所有的位置、国家、州和城市数据,我不想为这些表插入任何新记录。如何才能将其插入USER_LOCATION表?
发布于 2015-03-04 08:33:14
我只有来自前端的USER.LOCATION.LOCATION_ID,也没有其他的LOCATION对象字段。
如果要将用户与现有位置相关联,则需要从数据库中实际获取现有的持久位置,并将其设置为关系。
Location location = locationRepository.findById(locationId);
user.getLocations.add(location);
userRepository.persist(user);https://stackoverflow.com/questions/28843967
复制相似问题