ne pouvait pas extraire ResultSet
public class DBUtilU {
private static Session scss;
private static SessionFactory sfactory;
static {
Configuration cfg = new Configuration();
cfg.addAnnotatedClass(Userdetails.class);
cfg.addAnnotatedClass(Code.class);
cfg.addAnnotatedClass(Messages.class);
cfg.addAnnotatedClass(Comments.class);
cfg.configure();
new SchemaExport(cfg);
sfactory = cfg.buildSessionFactory();
}
}
public static List<Code> searchCodeTags(String tags) {
List<Code> codelist = new ArrayList<Code>();
try {
scss = sfactory.getCurrentSession();
scss.beginTransaction();
String query = "from Code where Tags=" + tags;
Query queryResult = scss.createQuery(query);
for(Object c : queryResult.list())
codelist.add((Code)c);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return codelist;
}
package UsersProperty;
@Entity
public class Code {
@Id
@GeneratedValue
private int codeId;
private int Rating;
private String fileName;
private String OwnerName;
private String PrjName;
private String Tags;
@ManyToOne()
@JoinColumn(name="userid")
private Userdetails userdetails;
@OneToMany(targetEntity=Comments.class, mappedBy="targetCode")
private List<Comments> cm;
public int getRating() {
return Rating;
}
public void setRating(int rating) {
Rating = rating;
}
public List<Comments> getCm() {
return cm;
}
public void setCm(List<Comments> cm) {
this.cm = cm;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getOwnerName() {
return OwnerName;
}
public void setOwnerName(String ownerName) {
OwnerName = ownerName;
}
public String getPrjName() {
return PrjName;
}
public void setPrjName(String prjName) {
PrjName = prjName;
}
public String getTags() {
return Tags;
}
public void setTags(String tags) {
Tags = tags;
}
public Userdetails getUserdetails() {
return userdetails;
}
public void setUserdetails(Userdetails userdetails) {
this.userdetails = userdetails;
}
public Code(String fileName, String ownerName, String prjName,String tAgs) {
super();
this.fileName = fileName;
OwnerName = ownerName;
PrjName = prjName;
Tags=tAgs;
}
public Code() {
super();
}
public static List<Code> CodeSearch(String TAGS){
return DBUtilU.searchCodeTags(TAGS);
}
}
Console:
> Hibernate: select code0_.codeId as codeId1_0_, code0_.OwnerName as OwnerNam2_0_, code0_.PrjName as PrjName3_0_, code0_.Rating as Rating4_0_, code0_.Tags as Tags5_0_, code0_.fileName as fileName6_0_, code0_.userid as userid7_0_ from Code code0_ where code0_.Tags=Overloading
Jun 17, 2013 8:38:05 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 42703
Jun 17, 2013 8:38:05 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ERROR: column "overloading" does not exist
Position: 252
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:123)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:61)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2036)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1836)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1815)
at org.hibernate.loader.Loader.doQuery(Loader.java:899)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
at org.hibernate.loader.Loader.doList(Loader.java:2522)
at org.hibernate.loader.Loader.doList(Loader.java:2508)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2338)
at org.hibernate.loader.Loader.list(Loader.java:2333)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1269)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at DB.DBUtilU.searchCodeTags(DBUtilU.java:117)
at UsersProperty.Code.CodeSearch(Code.java:90)
at Test.Main.main(Main.java:34)
Caused by: org.postgresql.util.PSQLException: ERROR: column "overloading" does not exist
Position: 252
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:56)
... 17 more
Problème:
Il se passe lorsque j'execute le searchCodeTags
fonction de DBUtilU
classe. Ce qui se passe ici?
OriginalL'auteur A.R.H | 2013-06-17
Vous devez vous connecter pour publier un commentaire.
Modifier votre requête comme ci-dessous:
Sinon comme ci-dessous:
La comparaison dans le où clause est littérale, et pas d'une autre colonne. Donc, il doit être cité comme dans le premier cas, ou d'utiliser une liaison variable comme dans le deuxième cas.
OriginalL'auteur Mubin
Prendre un coup d'oeil à votre message d'erreur (je concède que la stacktrace est long, généralement la partie la plus intéressante est près du sommet).
Vous besoin de citer
'Overloading'
, car il n'est pas un nom de colonne, mais une valeur littérale. Mieux encore, de le définir comme un lier des variables.OriginalL'auteur Thilo
si vous avez camelCase puis JPA permet de convertir à la Camel_Case,de le convertir en minuscules va être fonctionne bien.
OriginalL'auteur vaquar khan