1
I持ってProductエンティティであるエンティティ:dropwizard休止名前付きクエリは知られていない
package com.amitbaz.tradingsystem;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;
import org.hibernate.annotations.Table;
@DynamicUpdate(true)
@Table(appliesTo = "productTable")
@NamedQueries({
@NamedQuery(name = "com.amitbaz.tradingsystem.product.GetAll", query= "select p from Product p"),
@NamedQuery(name = "com.amitbaz.tradingsystem.product.GetByName", query= "select p from Product p where p.fullName like :name")
})
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "product_id")
private int id;
@Column(name="product_name")
private String fullName;
@Column(name="product_info")
private String info;
@Column(name="product_price")
private float price;
@Column(name="product_base_currency")
private String baseCurrency;
public Product(String fullName, String info, float price, String baseCurrency) {
this.fullName = fullName;
this.info = info;
this.price = price;
this.baseCurrency = baseCurrency;
}
}
とDAOは、次のようになります。私はまた、アプリケーションクラスでhibernateBundleを初期化
package com.amitbaz.tradingsystem;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import java.util.List;
import io.dropwizard.hibernate.AbstractDAO;
public class ProductDAO extends AbstractDAO<Product>{
public ProductDAO(SessionFactory sessionFactory) {
super(sessionFactory);
// TODO Auto-generated constructor stub
}
public List<Product> getAll(){
return list(namedQuery("com.amitbaz.tradingsystem.product.GetAll"));
}
public List<Product> getByName(String name){
StringBuilder builder = new StringBuilder("%");
builder.append(name).append("%");
return list(namedQuery("com.amitbaz.tradinsystem.product.GetByName").setParameter("name", builder.toString()));
}
}
とリソースを環境に登録しました:
今、私はこのクエリをテストしています500エラー、サーバログのNamed query not known: <name of the query>
エラー
OMGあなたに感謝してくれてありがとう!私はユーザーにhibernate注釈@ Entityをしようとしていましたが、それは廃止されていますので、正しいインポートが何であるかを理解するのに困っていました...また、@表applysToを名前に変更しました。 – kitsuneFox
あなたは歓迎です:) – javaeeeee