protected long longPkFromDatabase(DataNode node, DbEntity entity) throws Exception {
String template = "SELECT #result('UNIQUE' 'long') FROM " + entity.getName();
SQLTemplate query = new SQLTemplate(entity, template);
QueryResult observer = new QueryResult();
node.performQueries(Collections.singleton((Query) query), observer);
List results = observer.getFirstRows(query);
if (results.size() != 1) {
throw new CayenneRuntimeException("Error fetching PK. Expected one row, got "
+ results.size());
}