繁体   English   中英

Hibernate更新一定值

[英]Hibernate update a certain value

我已经编码了一种方法,如果它具有某个标识符,它将选择或更新一个值:

@Transactional
public List<Settings> getSettingsByParameter(String identifier) throws Exception {
    log.info("get resultsList by " + identifier);

    if(identifier.isEmpty()) {
        throw new Exception("Identifier is empty!");
    }

    if(identifier == "today") {
        //update today field
        String query = "UPDATE settings SET value=TODAY() where identifier = '" + identifier + "'";
        em.merge(em.createQuery(query, Settings.class).getSingleResult()); 
    }

    String query = "SELECT p FROM Settings p WHERE identifier = '" + identifier + "'";
    List<Settings> resultList = em.createQuery(query, Settings.class).getResultList(); 

    return resultList;
}

但是,我得到一个例外:

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: settings is not mapped [UPDATE settings SET value=TODAY() where identifier = 'today']

为什么以及使用hibernate和hsqldb怎么可能?

非常感谢您的回答!

Hibernate对类名区分大小写。 尝试使用Captial S来访问Settings类:

String query = "UPDATE Settings SET value=TODAY() where identifier = '" + identifier + "'";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM