2015-07-13 61 views
2

假设实体中存在一些命名查询,那些命名查询应如何评论?有没有办法将它们映射到创建的javadoc?如何评论(javadoc)NamedQueries

@Entity 
    @NamedQueries({ 
     @NamedQuery(name="Country.findAll", 
        query="SELECT c FROM Country c"), 
     @NamedQuery(name="Country.findByName", 
        query="SELECT c FROM Country c WHERE c.name = :name"), 
    }) 
    public class Country { 
     ... 
    } 

此刻我把评论(非javadoc)放在行前,但我不喜欢它非常多。

// find all countries 
@NamedQuery(name="Country.findAll", query="SELECT c FROM Country c") 

回答

5

我用来将Query的名称定义为实体类中的常量。当然是恒定的,可以说:

@Entity 
@NamedQueries({ 
@NamedQuery(name=Country.QUERY_FIND_BY_NAME, 
      query="SELECT c FROM Country c WHERE c.name = :name"), 
}) 
public class Country { 

    /** 
    * Description of the Query. Bla bla. 
    */ 
    public static final String QUERY_FIND_BY_NAME = "Country.findByName"; 

    ... 
} 

作为奖励,你可以创建一个名为查询时使用,而不是一个String这个常数:

em.createNamedQuery(Country.QUERY_FIND_BY_NAME, Country.class); 
+0

很好的解决方案,虽然它似乎更多的是解决办法。我会接受你的回答,因为我认为现在还没有更好的方法去做。谢谢 :) – mauros