PlayFramework从模型选择中获取字段

Smu*_*dge 3 java jpa playframework

由于关于模型的游戏文档很糟糕,我会问这里.我有基本代码;

public static void Controller() {
        List<Item> item = Item.find("SELECT itemname,id FROM Item WHERE itembool = true ORDER BY itemcreated ASC LIMIT 0,1").fetch();

        if ( item == null ) {
            notFound();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想要做的是获取从SQL查询返回的第一个值返回的'itemname'的值(真正的查询要复杂得多,其他的东西也不能用方法替换).我可以获得整个第一个对象,item.get(0)但我无法弄清楚如何将'itemname'的值作为字符串获取,并且它似乎没有记录在任何地方.

编辑

可能应该在原始问题中提到,我需要通过字段名称而不是索引来检索.IE我不能做items.get(0)[0];我需要做的items.get(0)['itemname'];

Per*_*ega 5

如果你在这里阅读它,文档解释了这一点.Hibernate不使用SQL,而是使用JPQL,它具有与对象不同的语法,而不是单个字段.

您想要做的事情可以通过两种方式实现(均在文档中):

List<Item> item = Item.find("SELECT i FROM Item i WHERE i.itembool = true ORDER BY i.itemcreated ASC").fetch(1);

List<Item> item = Item.find("itembool = true ORDER BY itemcreated ASC").fetch(1);
Run Code Online (Sandbox Code Playgroud)

编辑:

在检索部分,您将获得Item列表,因此您可以直接在对象上访问该字段:

item.get(0).getItemName();
Run Code Online (Sandbox Code Playgroud)