首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JPA 1检查数据存储中是否存在实体

使用JPA 1检查数据存储中是否存在实体
EN

Code Review用户
提问于 2012-09-18 13:02:01
回答 2查看 1.6K关注 0票数 5

下面是我检查实体是否已经存在的方法。

代码语言:javascript
复制
public boolean isExist(String genreName) throws PersistenceException{
    EntityManager em = EMF.get().createEntityManager();
    boolean flag = false;

    try{
        Genre genre = em.find(Genre.class, genreName);
        if (genre != null)
            flag = true;

    }finally{
        em.close();
    }

    return flag;
}

上面的代码可以吗?请建议一下。

EN

回答 2

Code Review用户

回答已采纳

发布于 2012-09-18 13:23:57

  • isExist不是英语。叫它像genreExists
  • 除了省略标志(正如palacsint建议的那样)之外,您还可以去掉if分支:
代码语言:javascript
复制
public boolean genreExists(String genreName) throws PersistenceException {
    EntityManager em = EMF.get().createEntityManager();
    try {
        return em.find(Genre.class, genreName) != null;
    } finally {
        em.close();
    }
}

可能与此无关的边注:

如果您使用的是Java 7,并且EntityManager实现了AutoCloseable或它的一个不同的子接口(例如Closeable),那么使用新的尝试-有-资源声明:可以使代码更加简洁。

代码语言:javascript
复制
try (EntityManager em = EMF.get().createEntityManager()) {
    return em.find(Genre.class, genreName) != null;
}

但它没有所以你不能。

票数 5
EN

Code Review用户

发布于 2012-09-18 13:21:05

看上去很好。如果您知道答案后立即返回,您可以省略布尔标志:

代码语言:javascript
复制
public boolean isExist(final String genreName) throws PersistenceException {
    final EntityManager em = EMF.get().createEntityManager();
    try {
        final Genre genre = em.find(Genre.class, genreName);
        if (genre != null) {
            return true;
        }
        return false;
    } finally {
        em.close();
    }
}
票数 5
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/15704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档