Невозможно получить результаты контроллера при использовании аннотаций присоединения в спящем режиме - PullRequest
2 голосов
/ 28 мая 2020

Я новичок в спящем режиме и пытаюсь реализовать аннотации соединения спящего режима, но столкнулся с этой странной проблемой. Поскольку я прикрепил pojos, когда я запускаю свой контроллер, никаких выходных данных не видно, но новая строка была заполнена в таблице user_song_rel как внешний ключ к таблице песен. Кроме того, значение этой записи равно нулю (на снимке экрана MySQL), несмотря на то, что в таблице песен есть записи, соответствующие song_ids. Пожалуйста, найдите прилагаемую схему обеих таблиц. Заранее спасибо :)

Структура схемы

Schema Structure

Сопоставление песен пользователя

@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();

    }

Выбор запроса после запуска контроллера.

Select query after running controller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...