Я новичок в спящем режиме и пытаюсь реализовать аннотации соединения спящего режима, но столкнулся с этой странной проблемой. Поскольку я прикрепил pojos, когда я запускаю свой контроллер, никаких выходных данных не видно, но новая строка была заполнена в таблице user_song_rel как внешний ключ к таблице песен. Кроме того, значение этой записи равно нулю (на снимке экрана MySQL), несмотря на то, что в таблице песен есть записи, соответствующие song_ids. Пожалуйста, найдите прилагаемую схему обеих таблиц. Заранее спасибо :)
Структура схемы
Сопоставление песен пользователя
@NamedQueries({
@NamedQuery(
name="findUserSongByUserID",
query="from UserSongRel usr where usr.user_id = :user_id"
)
})
@Entity
@Table(name="user_song_rel")
public class UserSongRel {
public UserSongRel() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int usr_id;
private String user_id;
private String song_id;
private String song_src;
private int song_state;
@Temporal(TemporalType.TIMESTAMP)
private Date add_date;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(referencedColumnName = "song_id")
private SongInfo songInfo;
Песня
@Entity (name = "song_info")
public class SongInfo {
@Id
private String song_id;
private String s_name;
private String artist;
private String album;
private int duration;
private Date rel_date;
private int popularity;
@OneToMany(mappedBy = "songInfo")
private List<UserSongRel> userSongRelList=new ArrayList<UserSongRel>();
Контроллер
@RequestMapping(value = "/getUserSongs/{uid}", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<?> getUserSongs(@PathVariable String uid,
HttpServletResponse response, HttpServletRequest request){
SongInfo usr= songService.getUserSongs(uid);
return ResponseEntity.ok().body(usr);
}
DAO
public SongInfo getUserSongs(String uid) {
Session s = sf.getCurrentSession();
UserSongRel songs=s.get(UserSongRel.class, 1);
List<UserSongRel> songList =new ArrayList<UserSongRel>();
songList.add(songs);
return songList.get(0).getSongInfo();
}
Выбор запроса после запуска контроллера.