2017-06-15 3 views
-1

Ich habe dieses Problem für eine lange Zeit gesucht, aber die Antworten haben nicht geholfen.org.hibernate.hql.ast.QuerySyntaxException: ts_user ist nicht zugeordnet [aus ts_user]

Die Ergebnisse sind die gleichen, vielleicht sind die Gründe anders.

Das Modell, das der Datenbank mithilfe der Tabellenannotation zugeordnet ist.

Das Modell wie folgt:

@Entity 
 
@Table(name = "ts_user") 
 
public class User { 
 

 
    @Id 
 
    @Column(name = "id") 
 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
 
    private int id; 
 

 
    private String phone; 
 

 
    public int getId() { 
 
     return id; 
 
    } 
 

 
    public void setId(int id) { 
 
     this.id = id; 
 
    } 
 

 
    public String getPhone() { 
 
     return phone; 
 
    } 
 

 
    public void setPhone(String phone) { 
 
     this.phone = phone; 
 
    } 
 

 
    @Override 
 
    public String toString() { 
 
     return "User{" + 
 
       "id=" + id + 
 
       ", phone='" + phone + '\'' + 
 
       '}'; 
 
    } 
 
}

Die DAO wie folgt:

xml

@Repository 
 
public class HibernateUserDAO implements UserDAO { 
 

 
    private SessionFactory sessionFactory; 
 

 
    @Autowired 
 
    public HibernateUserDAO(SessionFactory sessionFactory) { 
 
     this.sessionFactory = sessionFactory; 
 
    } 
 

 
    private Session currentSession() { 
 
     return sessionFactory.getCurrentSession(); 
 
    } 
 

 
    @SuppressWarnings("unchecked") 
 
    @Override 
 
    public List<User> list() { 
 
     Session session = this.sessionFactory.openSession(); 
 
     List<User> users = session.createQuery("from ts_user").list(); 
 
     session.close(); 
 
     return users; 
 
    } 
 
}
wie folgt:

Antwort

0

Sie verwenden hier den Tabellennamen und nicht den EntityName. Der Entitätsname, d. H. Der Name der Klasse, sollte hier verwendet werden.

@Override 
public List<User> list() { 
    Session session = this.sessionFactory.openSession(); 
    List<User> users = session.createQuery("select u from User u").list(); 
    session.close(); 
    return users; 
} 
Verwandte Themen