我正在Netbeans中使用JPA在JSF 2.0中进行我的第一个应用程序。
如何在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中的选项使用不同的命名查询,例如findByMail
,findByUser
等。
我看到在Netbeans生成的代码中,我有Vector
,其结果为findAll
。这样好吗?如果我的数据库中有大量数据,这不是一个很大的载体吗?在100个查询中有100个不是更好吗?
生成的JSF页面始终相同。这是正常的吗?我可以生成一个URL吗?
答案 0 :(得分:3)
您似乎正在使用Netbeans向导 - 并且很少了解生成的代码。你甚至无法提出正确的问题,更不用说理解答案了。您没有掌握JSF和JPA,JPQL和SQL,矢量和集合等之间的区别。
随意忽略我的建议,但我强烈的意见是你需要先学习使用的技术,然后再尝试向导。从数据库生成JSF CRUD页面的Netbeans向导并不是一个开箱即用的解决方案,事实上模板已经知道了错误。它可以用来娱乐,它可以用来在派对上给你的朋友留下深刻印象 - 但作为一种教育工具,它是一个非常差的人。