Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changing the createNativeQuery(sql) method to return a List<Object> or List<Object[]> #998

Merged
merged 1 commit into from
May 24, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,9 @@ protected List<SuperColumn> loadSuperColumns(String keyspace, String columnFamil
public List executeQuery(Class clazz, List<String> relationalField, boolean isNative, String cqlQuery) {
ResultSet rSet = (ResultSet) this.execute(cqlQuery, null);
if (clazz == null) {
// XXX
if (isNative)
return iterateAndReturnNative(rSet);
return iterateAndReturn(rSet);
}
EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, clazz);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,34 +78,41 @@ public void testSelectQueries()
String qry = "Select \"personId\", \"PERSON_NAME\" from \"PERSON\" where \"personId\" = '1'";

Query q = entityManager.createNativeQuery(qry);
List persons = q.getResultList();
List<Object[]> persons = q.getResultList();
Assert.assertNotNull(persons);
Assert.assertFalse(persons.isEmpty());
Assert.assertEquals(1, persons.size());
Assert.assertEquals("1", ((Map) persons.get(0)).get("personId"));
Assert.assertEquals("karthik", ((Map) persons.get(0)).get("PERSON_NAME"));

qry = "Select * from \"PERSON\" where \"personId\" = '1'";
Assert.assertEquals("1", persons.get(0)[0]);
Assert.assertEquals("karthik", persons.get(0)[1]);

qry = "Select \"personId\", \"PERSON_NAME\", \"MONTH_ENUM\", \"AGE\" from \"PERSON\" where \"personId\" = '1'";
q = entityManager.createNativeQuery(qry);

persons = q.getResultList();

Assert.assertNotNull(persons);
Assert.assertFalse(persons.isEmpty());
Assert.assertEquals(1, persons.size());
Assert.assertEquals("1", ((Map) persons.get(0)).get("personId"));
Assert.assertEquals("karthik", ((Map) persons.get(0)).get("PERSON_NAME"));
Assert.assertEquals("MAY", ((Map) persons.get(0)).get("MONTH_ENUM"));
Assert.assertEquals(10, ((Map) persons.get(0)).get("AGE"));

qry = "Select * from \"PERSON\"";
Assert.assertEquals("1", persons.get(0)[0]);
Assert.assertEquals("karthik", persons.get(0)[1]);
Assert.assertEquals("MAY", persons.get(0)[2]);
Assert.assertEquals(10, persons.get(0)[3]);

qry = "Select \"personId\", \"PERSON_NAME\", \"MONTH_ENUM\", \"AGE\" from \"PERSON\"";
q = entityManager.createNativeQuery(qry);

persons = q.getResultList();

Assert.assertNotNull(persons);
Assert.assertFalse(persons.isEmpty());
Assert.assertEquals(3, persons.size());
Assert.assertEquals("1", ((Map) persons.get(0)).get("personId"));
Assert.assertEquals("karthik", ((Map) persons.get(0)).get("PERSON_NAME"));
Assert.assertEquals("MAY", ((Map) persons.get(0)).get("MONTH_ENUM"));
Assert.assertEquals(10, ((Map) persons.get(0)).get("AGE"));

Assert.assertEquals("1", persons.get(0)[0]);
Assert.assertEquals("karthik", persons.get(0)[1]);
Assert.assertEquals("MAY", persons.get(0)[2]);
Assert.assertEquals(10, persons.get(0)[3]);

entityManager.close();
emf.close();
Expand Down Expand Up @@ -143,12 +150,15 @@ public void testCreateAndUpdateQueries()
// select key and state
String selectSql = "SELECT key, state FROM users";
q = entityManager.createNativeQuery(selectSql);
List results = q.getResultList();

List<Object[]> results = q.getResultList();

Assert.assertNotNull(results);
Assert.assertEquals(1, results.size());
Assert.assertEquals("bsanderson", ((Map) results.get(0)).get("key"));
Assert.assertEquals("UT", ((Map) results.get(0)).get("state"));
Assert.assertEquals(null, ((Map) results.get(0)).get("full_name"));

Assert.assertEquals("bsanderson", results.get(0)[0]);
Assert.assertEquals("UT", results.get(0)[1]);
// Assert.assertEquals(null, ((Map) results.get(0)).get("full_name"));

// insert users.
insertSql = "INSERT INTO users (key, full_name, birth_date, state) VALUES ('prothfuss', 'Patrick Rothfuss', 1973, 'WI')";
Expand All @@ -165,10 +175,11 @@ public void testCreateAndUpdateQueries()
results = q.getResultList();
Assert.assertNotNull(results);
Assert.assertEquals(1, results.size());
Assert.assertEquals("bsanderson", ((Map) results.get(0)).get("key"));
Assert.assertEquals("UT", ((Map) results.get(0)).get("state"));
Assert.assertEquals("Brandon Sanderson", ((Map) results.get(0)).get("full_name"));
Assert.assertEquals(new Integer(1975), ((Map) results.get(0)).get("birth_date"));

Assert.assertEquals("bsanderson", results.get(0)[0]);
Assert.assertEquals("UT", results.get(0)[1]);
Assert.assertEquals("Brandon Sanderson", results.get(0)[2]);
Assert.assertEquals(new Integer(1975), results.get(0)[3]);

String updateSql = "UPDATE users SET full_name = 'update' WHERE key = 'bsanderson'";
q = entityManager.createNativeQuery(updateSql);
Expand All @@ -179,10 +190,11 @@ public void testCreateAndUpdateQueries()
results = q.getResultList();
Assert.assertNotNull(results);
Assert.assertEquals(1, results.size());
Assert.assertEquals("bsanderson", ((Map) results.get(0)).get("key"));
Assert.assertEquals("UT", ((Map) results.get(0)).get("state"));
Assert.assertEquals("update", ((Map) results.get(0)).get("full_name"));
Assert.assertEquals(new Integer(1975), ((Map) results.get(0)).get("birth_date"));

Assert.assertEquals("bsanderson", results.get(0)[0]);
Assert.assertEquals("UT", results.get(0)[1]);
Assert.assertEquals("update", results.get(0)[2]);
Assert.assertEquals(new Integer(1975), results.get(0)[3]);

entityManager.close();
emf.close();
Expand All @@ -196,32 +208,35 @@ public void testMetadataQueries()
String useNativeSql = "SELECT keyspace_name,table_name,column_name,kind,type FROM system_schema.columns"
+ " WHERE keyspace_name = 'KunderaExamples' AND table_name = 'PERSON'";
Query q = entityManager.createNativeQuery(useNativeSql);
List results = q.getResultList();
List<Object[]> results = q.getResultList();

Assert.assertNotNull(results);
Assert.assertEquals(6, results.size());
Assert.assertEquals("KunderaExamples", ((Map) results.get(0)).get("keyspace_name"));
Assert.assertEquals("PERSON", ((Map) results.get(0)).get("table_name"));
Assert.assertEquals("AGE", ((Map) results.get(0)).get("column_name"));
Assert.assertEquals("regular", ((Map) results.get(0)).get("kind"));
Assert.assertEquals("int", ((Map) results.get(0)).get("type"));

useNativeSql = "SELECT * FROM system_schema.keyspaces WHERE keyspace_name = 'KunderaExamples'";
Assert.assertEquals("KunderaExamples", results.get(0)[0]);
Assert.assertEquals("PERSON", results.get(0)[1]);
Assert.assertEquals("AGE", results.get(0)[2]);
Assert.assertEquals("regular", results.get(0)[3]);
Assert.assertEquals("int", results.get(0)[4]);

useNativeSql = "SELECT keyspace_name, durable_writes FROM system_schema.keyspaces WHERE keyspace_name = 'KunderaExamples'";
q = entityManager.createNativeQuery(useNativeSql);
results = q.getResultList();

Assert.assertNotNull(results);
Assert.assertEquals(1, results.size());
Assert.assertEquals("KunderaExamples", ((Map) results.get(0)).get("keyspace_name"));
Assert.assertEquals(true, ((Map) results.get(0)).get("durable_writes"));

Assert.assertEquals("KunderaExamples", results.get(0)[0]);
Assert.assertEquals(true, results.get(0)[1]);

useNativeSql = "SELECT COUNT(*) FROM system_schema.columns WHERE keyspace_name = 'KunderaExamples'AND table_name = 'PERSON'";
q = entityManager.createNativeQuery(useNativeSql);
results = q.getResultList();

final List<Object> resultsSingle = q.getResultList();

Assert.assertNotNull(results);
Assert.assertEquals(1, results.size());
Assert.assertEquals(6l, ((Map) results.get(0)).get("count"));
Assert.assertEquals(1, resultsSingle.size());
Assert.assertEquals(6l, resultsSingle.get(0));

entityManager.close();
emf.close();
Expand Down