SOLUTION:それは将来的に誰を助けることができる場合私はここに、それを解決し、新しいRestUser.javaある休止@OneToOneマッピング
@RequestMapping(value="/rate", method=RequestMethod.POST)
public ResponseEntity rate(@RequestBody Rating rating, Principal principal){
User user = userService.findByUsername(principal.getName());
Rating ratingAVG = ratingService.findOne(user.getId());
ratingAVG.setFood(rating.getFood());
ratingAVG.setService(rating.getService());
user.setRating(ratingAVG);
ratingAVG.setUser(user);
userService.save(user);
return new ResponseEntity("Rated!", HttpStatus.OK);
}
QUESTION
私はしました外国人のキーを持つオブジェクトを挿入/更新する際の問題です。私はこのような格付けテーブルを持っています。私はprincipal.getName()
と現在のuser_idを取る一意の評価オブジェクトを追加したいと思います。私はそれをテストするために高度なRESTクライアントを使用していますし、すでに
+------------------------------------------------+
| Rating |
+------------------------------------------------+
| id | food | service | user_id |
+----+-------------+----------------+------------+
| 1 | 5 | 5 | 1 |
+----+-------------+----------------+------------+
にUser.java
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Id", nullable=false, updatable=false)
private long id;
private String username;
private String password;
private String firstName;
private String lastName;
@OneToOne(cascade=CascadeType.ALL, mappedBy="user")
@JoinColumn(name="user_id", unique=true)
private Rating rating;
Rating.java
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private int food;
private int service;
@OneToOne(cascade = CascadeType.ALL)
@JsonIgnore
private User user;
RatingServiceimpl.java
@Service
public class RatingServiceImpl implements RatingService {
@Autowired
private RatingRepository ratingRepository;
@Override
public Rating save(Rating rating) {
return ratingRepository.save(rating);
}
}
を記録しています
UserRest.java
@RestController
@RequestMapping("/user")
public class UserRest {
@Autowired
UserService userService;
@Autowired
RatingService ratingService;
@RequestMapping(value="/rate", method=RequestMethod.POST)
public ResponseEntity rate(@RequestBody Rating rating, Principal principal){
User user = userService.findByUsername(principal.getName());
user.setRating(rating);
rating.setUser(user);
userService.save(user);
return new ResponseEntity("Rated!", HttpStatus.OK);
}
}
これは私が得るものですが、新しいオブジェクトを追加しますが、既存のオブジェクトを更新したいだけです。
ありがとう!
ありがとうございます!今度は、user_idを取りますが、それでも既存のオブジェクトを置き換えない新しいオブジェクトを追加します。何か案が ? 私はUserRest.javaとイメージを更新しました。 – Damine25