java hibernate Colonne inconnue '' dans 'liste de champs'

J'ai besoin d'une aide.

Lorsque j'utilise getAllStreets() méthode que j'ai erreur dans les requêtes HQL:

org.hibernate.exception.SQLGrammarException: Unknown column 'this_1_.houses_id' in 'field list'

Je suppose qu'il doit écrire this_1_id au lieu this_1_.houses_id

Peut être que je fait de mal Entité et de relation ?

2 de l'entité - les Maisons et les Rues

ER - modèle:

Table Rues

  • Id
  • Nom
  • Houses_id

Table De Maisons

  • id
  • nom

Mes Classes:

Rue

@Entity
@Table(name="Streets")
public class Street {
    private Long id;
    private String name;
    private Long houses_id;
    private House house;
    public Street(){}    
    @Id
    @GeneratedValue(generator="increment")
    @GenericGenerator(name="increment", strategy="increment")
    @Column(name="id")
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    @Column(name="name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @ManyToOne
    @JoinTable(name="Houses", joinColumns = @JoinColumn(name="id"), inverseJoinColumns=@JoinColumn(name="houses_id"))
    public House getHouse() {
        return house;
    }
    public void setHouse(House house) {
        this.house = house;
    }
    @Column(name="houses_id")
    public Long getHouses_id() {
        return houses_id;
    }
    public void setHouses_id(Long houses_id) {
        this.houses_id = houses_id;
    }
}

Maison

@Entity
@Table(name="Houses")
public class House {

    private Long id;
    private String name;
    public House(){}

    @Id
    @GeneratedValue(generator = "increment")
    @GenericGenerator(name="increment", strategy="increment")
    @Column(name="id")
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    @Column(name="name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Mon DAOIMP:

StreetDAOImp:

public class StreetDAOImpl implements StreetDAO {
    @Override
    public void addStreet(Street street) throws SQLException {
        //TODO Auto-generated method stub
        Session session = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();

            session.save(street);
            session.getTransaction().commit();
        } catch (Exception e) {
            //TODO: handle exception
            e.printStackTrace();
        }
        finally{
            if(session != null && session.isOpen()){
                session.close();
            }
        }
    }
    @Override
    public Collection getAllStreets() throws SQLException {
        //TODO Auto-generated method stub
        Session session = null;
        List<Street> streets = new ArrayList<Street>(); 
        try {
            session = HibernateUtil.getSessionFactory().openSession();

            streets = session.createCriteria(Street.class).list();
            //Query q = session.createQuery("select str from com.ff.model.Street str join str.houses h where h.id = str.houses_id");
        } catch (Exception e) {
            //TODO: handle exception
            e.printStackTrace();
        }
        return streets;
    }
}

HouseDAOImpl:

public class HouseDAOImpl implements HouseDAO {

    @Override
    public void addHouse(House house)throws SQLException {
        //TODO Auto-generated method stub
        Session session = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            session.save(house);
            session.getTransaction().commit();
        } catch (Exception e) {
            //TODO: handle exception
            e.printStackTrace();
        }
        finally{
            if(session != null && session.isOpen()){
                session.close();
            }
        }
    }

    @Override
    public Collection getAllHouses() throws SQLException {
        //TODO Auto-generated method stub
        Session session = null;
        List<House> houses = new ArrayList<House>();

        try {
            session = HibernateUtil.getSessionFactory().openSession();
            houses = session.createCriteria(House.class).list();
        } catch (Exception e) {
            //TODO: handle exception
            e.printStackTrace();
        }
         finally {
              if (session != null && session.isOpen()) {
                session.close();
              }

    }
    return houses;
}}

Erreur:

log4j:AVERTIR Aucune appenders pourrait être trouvé pour enregistreur (org.jboss.l'exploitation forestière). 
log4j:AVERTIR Veuillez initialiser le log4j système correctement. 
Hibernate: sélectionnez this_.id id1_1_, this_.houses_id comme houses2_1_1_, this_.nom de name1_1_, this_1_.houses_id comme houses3_0_1_, house2_.id id0_0_, house2_.nom de name0_0_ de Rues this_ jointure externe gauche Maisons this_1_ sur this_.id=this_1_.id jointure externe gauche Maisons house2_ sur this_1_.houses_id=house2_.id 
org.mise en veille prolongée.exception à la règle.SQLGrammarException: Unknown column 'this_1_.houses_id' in 'field list' 
au org.mise en veille prolongée.exception à la règle.interne.SQLExceptionTypeDelegate.convertir(SQLExceptionTypeDelegate.java:82) 
au org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) 
au org.mise en veille prolongée.moteur.jdbc.le spi.SqlExceptionHelper.convertir(SqlExceptionHelper.java:125) 
au org.mise en veille prolongée.moteur.jdbc.le spi.SqlExceptionHelper.convertir(SqlExceptionHelper.java:110) 
au org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129) 
au org.mise en veille prolongée.moteur.jdbc.interne.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81) 
à $Proxy14.executeQuery(Source Inconnue) 
au org.mise en veille prolongée.loader.Loader.getResultSet(Loader.java:2031) 
au org.mise en veille prolongée.loader.Loader.executeQueryStatement(Loader.java:1832) 
au org.mise en veille prolongée.loader.Loader.executeQueryStatement(Loader.java:1811) 
au org.mise en veille prolongée.loader.Loader.doQuery(Loader.java:899) 
au org.mise en veille prolongée.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341) 
au org.mise en veille prolongée.loader.Loader.doList(Loader.java:2516) 
au org.mise en veille prolongée.loader.Loader.doList(Loader.java:2502) 
au org.mise en veille prolongée.loader.Loader.listIgnoreQueryCache(Loader.java:2332) 
au org.mise en veille prolongée.loader.Loader.liste(Loader.java:2327) 
au org.mise en veille prolongée.loader.les critères.CriteriaLoader.liste(CriteriaLoader.java:124) 
au org.mise en veille prolongée.interne.SessionImpl.liste(SessionImpl.java:1621) 
au org.mise en veille prolongée.interne.CriteriaImpl.liste(CriteriaImpl.java:374) 
au com.ff.DAO.StreetDAOImpl.getAllStreets(StreetDAOImpl.java:48) 
au FFMain.principale(FFMain.java:58) 
Causés par: com.mysql.jdbc.des exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'this_1_.houses_id' in 'field list' 
au coucher du soleil.de réfléchir.NativeConstructorAccessorImpl.newInstance0(Native method) 
au coucher du soleil.de réfléchir.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
au coucher du soleil.de réfléchir.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
à java.lang.de réfléchir.Constructeur.newInstance(Constructeur.java:513) 
au com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
au com.mysql.jdbc.Util.getInstance(Util.java:381) 
au com.mysql.jdbc.La fonction SQLError.createSQLException(SQLError.java:1030) 
au com.mysql.jdbc.La fonction SQLError.createSQLException(SQLError.java:956) 
au com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) 
au com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) 
au com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) 
au com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) 
au com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) 
au com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) 
au com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) 
au coucher du soleil.de réfléchir.NativeMethodAccessorImpl.invoke0(Native method) 
au coucher du soleil.de réfléchir.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
au coucher du soleil.de réfléchir.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
à java.lang.de réfléchir.La méthode.invoke(la Méthode.java:597) 
au org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122) 
16 de plus ... 

source d'informationauteur