Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在mysql数据库中查询特定实体_Java_Rest_Jpql - Fatal编程技术网

Java 如何在mysql数据库中查询特定实体

Java 如何在mysql数据库中查询特定实体,java,rest,jpql,Java,Rest,Jpql,我试图弄清楚如何在mysql数据库中查询特定歌曲。这个想法是通过歌曲的id来查找歌曲,因此如果我传递id,浏览器窗口中就会出现一首歌曲 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

我试图弄清楚如何在mysql数据库中查询特定歌曲。这个想法是通过歌曲的id来查找歌曲,因此如果我传递id,浏览器窗口中就会出现一首歌曲

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

创建查询对象并设置参数值,然后获取单行

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();
TypedQuery query=em.createQuery(“从歌曲s中选择s,其中s.songID=:id”,Song.class);
query.setParameter(1,id)//不知道我的身份证是什么
Song-Song=query.getSingleResult();

问题是什么?我没有收到歌曲。你能给我们提供更多信息吗?您是否收到错误消息?如果是,错误是什么?
SELECT s FROM Song s
是列的名称
s
?我在空白窗口中什么也没有得到。