Reputation: 307
I have a database showing the relationship much more like this
I want to get information out of two table gmail and bloggerwith conditions blog[blogger] and user[gmail] value exists in table md_parse_blogger
I want to know how to make a correct syntax where,please help me
public List showDatawebA(String blog, String url) {
String sql = "FROM MdParse g,MdBlogger b,MdParseBlogger pb"
+ " WHERE pb.mdBlogger=:blog and pb.mdParse=:url";
Query createQuery = currentSession.createQuery(sql);
createQuery.setParameter("blog", blog);
createQuery.setParameter("url", url);
return createQuery.list();
}
With mdBlogger,mdGmail is attribute class MdParseBlogger,
public class MdParseBlogger implements java.io.Serializable {
private MdParseBloggerId id;
private MdBlogger mdBlogger;
private MdParse mdParse;
...........
}
ERROR
Exception in thread "main" org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 2
at org.hibernate.engine.query.spi.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:89)
at org.hibernate.engine.query.spi.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:109)
at org.hibernate.internal.AbstractQueryImpl.determineType(AbstractQueryImpl.java:507)
at org.hibernate.internal.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:479)
at dbUtility.DBTable.showDataweb(DBTable.java:76)
at dbUtility.DBTable.main(DBTable.java:83)
Picked up _JAVA_OPTIONS: -Xmx512M
Upvotes: 2
Views: 99
Reputation: 57421
You mixed named and ordinal parameters. It should be either
String sql ="FROM MdGmail g,MdBlogger b,MdParseBlogger pb"
+ " WHERE pb.mdBlogger=? and pb.mdGmail=?";
Query createQuery = currentSession.createQuery(sql);
createQuery.setParameter(1, blog);
createQuery.setParameter(2, url);
Or
String sql ="FROM MdGmail g,MdBlogger b,MdParseBlogger pb"
+ " WHERE pb.mdBlogger=:blog and pb.mdGmail=:url";
Query createQuery = currentSession.createQuery(sql);
createQuery.setParameter("blog", blog);
createQuery.setParameter("url", url);
Upvotes: 1