Как я могу запросить конкретную сущность в MySQL DB - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь выяснить, как запросить конкретную песню в базе данных MySQL.Идея состоит в том, чтобы найти песни по их идентификаторам, поэтому, если я передам идентификатор, одна песня должна появиться в окне браузера.

public class Song {

private int id = 0;
private String title;
private String artist;
private String album;
private int released;

public Song() {
}

public Song(int id, String title, String artist, String album, int released) {
    this.id = id;
    this.title = title;
    this.artist = artist;
    this.album = album;
    this.released = released;
}
@Id
@Column(name = "songID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId() {
    return id;
}

SongWebService.java

    @GET
    @Path("/{id}")
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response getSongById() { 

    Object song = null;
    try {
        em.getTransaction().begin();            
        song = em.createQuery("SELECT s FROM Song s WHERE s.songID = :id", Song.class).getSingleResult();
        em.getTransaction().commit(); 
    } catch (NoResultException e) {
        Response.noContent().build();
    } catch (Exception ex) {
        ex.printStackTrace();
        em.getTransaction().rollback();
    } finally {
        em.close();
    }
    return Response.ok(song).build();
}

1 Ответ

1 голос
/ 03 июня 2019

Создайте объект запроса и установите значение параметра, а затем получите одну строку

TypedQuery<Song> query =  em.createQuery("SELECT s FROM Song s WHERE s.songID = :id", Song.class);
query.setParameter(1, id); //not sure what id 
Song song = query.getSingleResult();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...