如何使用不同的命名查询

时间:2013-01-18 17:05:29

标签: java jpa netbeans jsf-2

我正在Netbeans中使用JPA在JSF 2.0中进行我的第一个应用程序。

  1. 如何在JSF中使用我的Java实体的不同命名查询?例如,我有这个实体,

    @Entity
    @Table(name = "user")
    @XmlRootElement
    @NamedQueries({
    @NamedQuery(name = "User.findAll", query = "SELECT u FROM User u"),
    @NamedQuery(name = "User.findById", query = "SELECT u FROM User u WHERE u.id = :id"),
    @NamedQuery(name = "User.findByUser", query = "SELECT u FROM User u WHERE u.user = :user"),
    @NamedQuery(name = "User.findByPassword", query = "SELECT u FROM User u WHERE u.password = :password"),
    @NamedQuery(name = "User.findByMail", query = "SELECT u FROM User u WHERE u.mail = :mail")})
    public class User implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Basic(optional = false)
        @NotNull
        @Column(name = "id")7
        private Integer id;
    

    我想让JSF中的选项使用不同的命名查询,例如findByMailfindByUser等。

  2. 我看到在Netbeans生成的代码中,我有Vector,其结果为findAll。这样好吗?如果我的数据库中有大量数据,这不是一个很大的载体吗?在100个查询中有100个不是更好吗?

  3. 生成的JSF页面始终相同。这是正常的吗?我可以生成一个URL吗?

1 个答案:

答案 0 :(得分:3)

您似乎正在使用Netbeans向导 - 并且很少了解生成的代码。你甚至无法提出正确的问题,更不用说理解答案了。您没有掌握JSF和JPA,JPQL和SQL,矢量和集合等之间的区别。

随意忽略我的建议,但我强烈的意见是你需要先学习使用的技术,然后再尝试向导。从数据库生成JSF CRUD页面的Netbeans向导并不是一个开箱即用的解决方案,事实上模板已经知道了错误。它可以用来娱乐,它可以用来在派对上给你的朋友留下深刻印象 - 但作为一种教育工具,它是一个非常差的人。