Je développe en utilisant spring-boot, application spring-batch où je lis les données de la table source en utilisant HibernatePagingItemReader. Quand je cours le code je suis en dessous de l'exception. Voici le code de mon application. Veuillez noter que mon nom de table dans la base de données est "OLDUSER" et que mon nom d'entité est "Olduser". J'ai déjà utilisé toutes les suggestions possibles sur stackoverflow pour des questions similaires mais aucune d'entre elles ne me travaille. Merci pour l'aide.Lancement HibernatePagingItemReader La table QuerySyntaxException n'est pas mappée
org.hibernate.hql.internal.ast.QuerySyntaxException: Olduser is not mapped [FROM Olduser o where o.id>=7501 and o.id <= 15000 order by o.id ASC]
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:218)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:76)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150)
classe Domaine: Olduser.java:-
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Table(name="OLDUSER")
@Entity
public class Olduser {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
int id;
@Column(name="USERNAME")
String username;
@Column(name="PASSWORD")
String password;
@Column(name="AGE")
int age;
public Olduser(int id, String username, String password, int age) {
super();
this.id = id;
this.username = username;
this.password = password;
this.age = age;
}
code ItemReader: -
@Bean
@StepScope
public HibernatePagingItemReader<Olduser> hibernateUserItemReader(
@Value("#{stepExecutionContext[fromId]}") final String fromId,
@Value("#{stepExecutionContext[toId]}") final String toId,
@Value("#{stepExecutionContext[name]}") final String name) throws Exception {
LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();
factoryBean.setDataSource(this.dataSource);
factoryBean.afterPropertiesSet();
SessionFactory sessionFactory = factoryBean.getObject();
HibernatePagingItemReader<Olduser> hibernateReader=new HibernatePagingItemReader<>();
hibernateReader.setFetchSize(chunkSize);
hibernateReader.setQueryString("FROM Olduser o where o.id>=" + fromId + " and o.id <= " + toId +" order by o.id ASC");
hibernateReader.setSessionFactory(sessionFactory);
hibernateReader.setUseStatelessSession(false);
hibernateReader.setSaveState(false);
hibernateReader.afterPropertiesSet();
return hibernateReader;
}
Vérifiez si la réponse à l'adresse https://stackoverflow.com/questions/18629702/org-hibernate-mappingexception-unknown-entity-in-spring-ou m? noredirect = 1 & lq = 1 est bon pour votre problème –
Bonjour @LucaBassoRicci, Merci pour votre aide, j'ai déjà trouvé la solution du problème.J'ai ajouté les paquets annotés et aussi je dois ajouter le bean JPATransactionManager pour gérer la transaction pour LocalSessionFactoryBean . Je posterai la solution complète maintenant. – Abhilash