Hi,
I am getting the exception
(com.orientechnologies.orient.core.exception.ODatabaseException) com.
orientechnologies.orient.core.exception.ODatabaseException: Database
instance is not set in current thread. Assure to set it with:
ODatabaseRecordThreadLocal.INSTANCE.set(db);
when I am trying to query using Java Document API. Here is how I am
querying the DB.
public List<ODocument> executeQuery(String sql, HashMap<String,Object>
params,StringBuilder errMsg) {
List<ODocument> result = new ArrayList<ODocument>();
try {
db = ODatabaseDocumentPool.global().acquire(connection,user,
password);
OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<ODocument>(
sql);
if (params.isEmpty() == true) {
result = db.command(query).execute();
} else {
result = db.command(query).execute(params);
}
} catch (Exception e) {
errMsg.append(e.getMessage());
//TODO: Add threaded error log saving mechanism
} finally {
db.close();
}
return result;
}
public boolean listItemExist(String userRID, String productRID, String
offerRID, ListItem listItem){
String sql;
List<ODocument> listItems;
HashMap<String, Object> params = new HashMap();
if (offerRID.equals("")){
sql = "select *, listName.name_ar as arlistname,
listName.name_en as enlistname from Inf_List_Item where userID = " +
userRID + " and productID = " + productRID;
}
else {
sql = "select *, listName.name_ar as arlistname,
listName.name_en as enlistname from Inf_List_Item where userID = " +
userRID + " and productID = " + productRID + " and offerID = " + offerRID;
}
StringBuilder errorMsg = new StringBuilder();
listItems = db.executeQuery(sql, params, errorMsg);
if (!errorMsg.toString().equals("")){
return false;
}
if (listItems.size() > 0){
ODocument listItemDoc = listItems.get(0);
listItem.setListItemRID(listItemDoc.field("@rid").toString());
listItem.setListNameAr(listItemDoc.field("arlistname").toString
());
listItem.setListNameEn(listItemDoc.field("enlistname").toString
());
listItem.setProductRID(productRID);
listItem.setOfferRID(offerRID);
return true;
}
else {
return false;
}
}
I get the error at
listItem.setListItemRID(listItemDoc.field("@rid").toString());
Both methods are running on same thread. Any help is appreciated.
Thanks,
Noorul
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.