Я занимаюсь разработкой небольшого приложения с использованием Struts, Spring и hibernate3.Но теперь я нахожу проблемы при выполнении именованных запросов с использованием HibernateTemplate.
Вот мой класс сущности, Product.java
@Entity
@Table(name = "product")
@NamedQueries({
@NamedQuery(name = "Product.findAll", query = "SELECT p FROM Product p"),
@NamedQuery(name = "Product.findByProductid", query = "SELECT p FROM Product p WHERE p.productid = :productid"),
@NamedQuery(name = "Product.findByProductname", query = "SELECT p FROM Product p WHERE p.productname = :productname"),
@NamedQuery(name = "Product.findByProductdesc", query = "SELECT p FROM Product p WHERE p.productdesc = :productdesc"),
@NamedQuery(name = "Product.findByUnitprice", query = "SELECT p FROM Product p WHERE p.unitprice = :unitprice"),
@NamedQuery(name = "Product.findByStockquantity", query = "SELECT p FROM Product p WHERE p.stockquantity = :stockquantity")})
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "productid")
private Integer productid;
@Basic(optional = false)
@Column(name = "productname")
private String productname;
@Column(name = "productdesc")
private String productdesc;
@Basic(optional = false)
@Column(name = "unitprice")
private double unitprice;
@Basic(optional = false)
@Column(name = "stockquantity")
private int stockquantity;
public Product() {
}
public Product(Integer productid) {
this.productid = productid;
}
public Product(Integer productid, String productname, double unitprice, int stockquantity) {
this.productid = productid;
this.productname = productname;
this.unitprice = unitprice;
this.stockquantity = stockquantity;
}
public Integer getProductid() {
return productid;
}
public void setProductid(Integer productid) {
this.productid = productid;
}
public String getProductname() {
return productname;
}
public void setProductname(String productname) {
this.productname = productname;
}
public String getProductdesc() {
return productdesc;
}
public void setProductdesc(String productdesc) {
this.productdesc = productdesc;
}
public double getUnitprice() {
return unitprice;
}
public void setUnitprice(double unitprice) {
this.unitprice = unitprice;
}
public int getStockquantity() {
return stockquantity;
}
public void setStockquantity(int stockquantity) {
this.stockquantity = stockquantity;
}
@Override
public int hashCode() {
int hash = 0;
hash += (productid != null ? productid.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Product)) {
return false;
}
Product other = (Product) object;
if ((this.productid == null && other.productid != null) || (this.productid != null && !this.productid.equals(other.productid))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.pojo.Product[productid=" + productid + "]";
}
}
Вот DAO, ProductDAO.java
public class ProductDAO extends HibernateDaoSupport{
public List listProducts() {
return getHibernateTemplate().findByNamedQuery("Product.findAll");
}
}
Но когда я запускаю приложение, я получаю следующее исключение.
org.springframework.orm.hibernate3.HibernateSystemException: Named query not known: Product.findAll
В классе HibernateTemplate уже есть метод findNamedQuery () для запуска именованных запросов.И запросы вводятся в виде аннотаций.
Нужно ли также поместить это в файл отображения?
Есть мысли, пожалуйста?