I have one entity which is the Product entity: 

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;
    }}

and the DAO looks like this:


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()));
    }
}

I also initialized the hibernateBundle in the application class and 
registered the resource to the environment:


package com.amitbaz.tradingsystem;

import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;import 
org.hibernate.Hibernate;import org.skife.jdbi.v2.DBI;
import io.dropwizard.Application;import 
io.dropwizard.auth.AuthDynamicFeature;import 
io.dropwizard.auth.AuthValueFactoryProvider;import 
io.dropwizard.auth.CachingAuthenticator;import 
io.dropwizard.auth.basic.BasicCredentialAuthFilter;import 
io.dropwizard.auth.basic.BasicCredentials;import 
io.dropwizard.db.DataSourceFactory;import 
io.dropwizard.db.PooledDataSourceFactory;import 
io.dropwizard.hibernate.HibernateBundle;import 
io.dropwizard.jdbi.DBIFactory;import io.dropwizard.setup.Bootstrap;import 
io.dropwizard.setup.Environment;
public class TradingSystemApplication extends 
Application<TradingSystemConfiguration>{

    public static void main(String[] args) throws Exception{
        new TradingSystemApplication().run(args);
    }

    private final HibernateBundle<TradingSystemConfiguration> HibernateBundle = 
new HibernateBundle<TradingSystemConfiguration>(Product.class){

        @Override
        public DataSourceFactory 
getDataSourceFactory(TradingSystemConfiguration config) {
            // TODO Auto-generated method stub
            return config.getDataSourceFactory();
        }


    };



    @Override
    public void initialize(Bootstrap<TradingSystemConfiguration> bootstrap) {
        // TODO Auto-generated method stub
        bootstrap.addBundle(HibernateBundle);
    }



    @Override
    public void run(TradingSystemConfiguration config, Environment env) throws 
Exception {
        // TODO Auto-generated method stub

        //final DBIFactory factory = new DBIFactory();
        //final DBI jdbi = factory.build(env, config.getDataSourceFactory(), 
"mysql");
        //final TestResource testRes = new TestResource();
        //final UserDAO dao = jdbi.onDemand(UserDAO.class);
        final ProductDAO productDAO = new 
ProductDAO(HibernateBundle.getSessionFactory());
        env.jersey().register(new ProductResource(productDAO));
        env.jersey().register(new TestResource()); 
        env.jersey().register(new AuthDynamicFeature(
                new BasicCredentialAuthFilter.Builder<User>()
                .setAuthenticator(new TradingSystemAuthenticator())
                .setAuthorizer(new TradingSystemAuthorizer())
                .setRealm("SHITTT")
                .buildAuthFilter()));

        env.jersey().register(RolesAllowedDynamicFeature.class);
        env.jersey().register(new 
AuthValueFactoryProvider.Binder<>(User.class));

    }
}

Now, when I'm testing this queries i get an 500 error and Named query not 
known: <name of the query> error in the server logs

-- 
You received this message because you are subscribed to the Google Groups 
"dropwizard-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dropwizard-user+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to