com.psddev.dari.db.Query.getOptions()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(10.1k)|赞(0)|评价(0)|浏览(199)

本文整理了Java中com.psddev.dari.db.Query.getOptions方法的一些代码示例,展示了Query.getOptions的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.getOptions方法的具体详情如下:
包路径:com.psddev.dari.db.Query
类名称:Query
方法名:getOptions

Query.getOptions介绍

[英]Returns the map of custom options that are passed to the underlying database.
[中]返回传递到基础数据库的自定义选项的映射。

代码示例

代码示例来源:origin: perfectsense/dari

  1. /** Adds a custom option with the given {@code key} and {@code value}. */
  2. public Query<E> option(String key, Object value) {
  3. getOptions().put(key, value);
  4. return this;
  5. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public boolean equals(Object other) {
  3. if (!(other instanceof FunnelCacheProducer)) {
  4. return false;
  5. }
  6. FunnelCacheProducer otherProducer = (FunnelCacheProducer) other;
  7. return (otherProducer.sqlQuery + otherProducer.query.getOptions().get(RETURN_ORIGINAL_DATA_QUERY_OPTION))
  8. .equals(sqlQuery + query.getOptions().get(RETURN_ORIGINAL_DATA_QUERY_OPTION));
  9. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public Connection openQueryConnection(Query<?> query) {
  3. if (query != null) {
  4. Connection connection = (Connection) query.getOptions().get(CONNECTION_QUERY_OPTION);
  5. if (connection != null) {
  6. return connection;
  7. }
  8. }
  9. return super.openQueryConnection(query);
  10. }

代码示例来源:origin: perfectsense/dari

  1. private Join createJoin(String queryKey) {
  2. String alias = "i" + joins.size();
  3. Join join = new Join(alias, queryKey);
  4. joins.add(join);
  5. if (queryKey.equals(query.getOptions().get(SqlDatabase.MYSQL_INDEX_HINT_QUERY_OPTION))) {
  6. mysqlIndexHint = join;
  7. }
  8. return join;
  9. }

代码示例来源:origin: perfectsense/dari

  1. /**
  2. * Returns {@code true} if the caching should be disabled when
  3. * running the query.
  4. *
  5. * @deprecated Use {@link Query#isCache} instead.
  6. */
  7. @Deprecated
  8. public boolean isDisabled() {
  9. Boolean old = ObjectUtils.to(Boolean.class, getOriginalObject().getOptions().get(IS_DISABLED_QUERY_OPTION));
  10. return old != null ? old : disabled;
  11. }

代码示例来源:origin: perfectsense/dari

  1. protected void closeResources(Query<?> query, Connection connection, Statement statement, ResultSet result) {
  2. if (result != null) {
  3. try {
  4. result.close();
  5. } catch (SQLException error) {
  6. // Not likely and probably harmless.
  7. }
  8. }
  9. if (statement != null) {
  10. try {
  11. statement.close();
  12. } catch (SQLException error) {
  13. // Not likely and probably harmless.
  14. }
  15. }
  16. Object queryConnection;
  17. if (connection != null
  18. && (query == null
  19. || (queryConnection = query.getOptions().get(CONNECTION_QUERY_OPTION)) == null
  20. || !connection.equals(queryConnection))) {
  21. try {
  22. if (!connection.isClosed()) {
  23. connection.close();
  24. }
  25. } catch (SQLException ex) {
  26. // Not likely and probably harmless.
  27. }
  28. }
  29. }

代码示例来源:origin: perfectsense/dari

  1. void closeResources(Query<?> query, Connection connection, Statement statement, ResultSet result) {
  2. if (result != null) {
  3. try {
  4. result.close();
  5. } catch (SQLException error) {
  6. // Not likely and probably harmless.
  7. }
  8. }
  9. if (statement != null) {
  10. try {
  11. statement.close();
  12. } catch (SQLException error) {
  13. // Not likely and probably harmless.
  14. }
  15. }
  16. Object queryConnection;
  17. if (connection != null
  18. && (query == null
  19. || (queryConnection = query.getOptions().get(CONNECTION_QUERY_OPTION)) == null
  20. || !connection.equals(queryConnection))) {
  21. try {
  22. if (!connection.isClosed()) {
  23. connection.close();
  24. }
  25. } catch (SQLException ex) {
  26. // Not likely and probably harmless.
  27. }
  28. }
  29. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public Connection openQueryConnection(Query<?> query) {
  3. if (query != null) {
  4. Connection connection = (Connection) query.getOptions().get(CONNECTION_QUERY_OPTION);
  5. if (connection != null) {
  6. return connection;
  7. }
  8. Boolean useRead = ObjectUtils.to(Boolean.class, query.getOptions().get(USE_READ_DATA_SOURCE_QUERY_OPTION));
  9. if (useRead == null) {
  10. useRead = Boolean.TRUE;
  11. }
  12. if (!useRead) {
  13. return openConnection();
  14. }
  15. }
  16. return super.openQueryConnection(query);
  17. }

代码示例来源:origin: perfectsense/dari

  1. private boolean checkFunnelCache(Query<?> query) {
  2. return query.isCache()
  3. && !query.isReferenceOnly()
  4. && isEnableFunnelCache()
  5. && !Boolean.TRUE.equals(query.getOptions().get(Database.DISABLE_FUNNEL_CACHE_QUERY_OPTION))
  6. && funnelCache != null;
  7. }

代码示例来源:origin: perfectsense/dari

  1. private boolean checkReplicationCache(Query<?> query) {
  2. return query.isCache()
  3. && !query.isMaster()
  4. && isEnableReplicationCache()
  5. && !Boolean.TRUE.equals(query.getOptions().get(DISABLE_REPLICATION_CACHE_QUERY_OPTION))
  6. && mysqlBinaryLogReader != null
  7. && mysqlBinaryLogReader.isConnected();
  8. }

代码示例来源:origin: perfectsense/dari

  1. private void startQueryEvent(String event, Query<?> query) {
  2. StackTraceElement caller = null;
  3. Profiler.Static.pauseThreadEvent();
  4. try {
  5. StackTraceElement[] elements = new Throwable().getStackTrace();
  6. for (int i = 2, length = elements.length; i < length; ++ i) {
  7. StackTraceElement element = elements[i];
  8. String className = element.getClassName();
  9. Class<?> c = ObjectUtils.getClassByName(className);
  10. if (c == null
  11. || !(Database.class.isAssignableFrom(c)
  12. || Query.class.isAssignableFrom(c))) {
  13. caller = element;
  14. break;
  15. }
  16. }
  17. } finally {
  18. Profiler.Static.resumeThreadEvent();
  19. }
  20. Object resolving = query.getOptions().get(State.REFERENCE_RESOLVING_QUERY_OPTION);
  21. if (resolving != null) {
  22. Profiler.Static.startThreadEvent(event + " (Reference Resolving)", resolving, query.getOptions().get(State.REFERENCE_FIELD_QUERY_OPTION), caller);
  23. } else {
  24. Profiler.Static.startThreadEvent(event, caller, query);
  25. }
  26. }

代码示例来源:origin: perfectsense/brightspot-cms

  1. private void addLegacyDatabaseSupport(Query query) {
  2. boolean usesLegacyDatabase = false;
  3. Database database = query.getDatabase();
  4. while (database instanceof ForwardingDatabase) {
  5. database = ((ForwardingDatabase) database).getDelegate();
  6. }
  7. if (database instanceof SqlDatabase) {
  8. usesLegacyDatabase = true;
  9. } else if (database instanceof AggregateDatabase) {
  10. usesLegacyDatabase = ((AggregateDatabase) database).getDelegatesByClass(SqlDatabase.class).size() > 0;
  11. }
  12. if (usesLegacyDatabase) {
  13. query.getOptions().put(SqlDatabase.USE_JDBC_FETCH_SIZE_QUERY_OPTION, false);
  14. query.setSorters(null); // SqlDatabase#ByIdIterator does not support sorters
  15. }
  16. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public <T> Iterable<T> readIterable(Query<T> query, int fetchSize) {
  3. Boolean useJdbc = ObjectUtils.to(Boolean.class, query.getOptions().get(USE_JDBC_FETCH_SIZE_QUERY_OPTION));
  4. if (useJdbc == null) {
  5. useJdbc = Boolean.TRUE;
  6. }
  7. if (useJdbc) {
  8. return selectIterableWithOptions(buildSelectStatement(query), fetchSize, query);
  9. } else {
  10. return new ByIdIterable<T>(query, fetchSize);
  11. }
  12. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public <T> Iterable<T> readIterable(Query<T> query, int fetchSize) {
  3. if (query.getSorters().isEmpty()) {
  4. if (!ObjectUtils.to(boolean.class, query.getOptions().get(DISABLE_BY_ID_ITERATOR_OPTION))) {
  5. return ByIdIterator.iterable(query, fetchSize);
  6. }
  7. }
  8. return selectIterable(buildSelectStatement(query), fetchSize, query);
  9. }

代码示例来源:origin: perfectsense/dari

  1. <T> T createSavedObjectFromReplicationCache(UUID id, byte[] data, Map<String, Object> dataJson, Query<T> query) {
  2. UUID typeId = ObjectUtils.to(UUID.class, dataJson.get(StateSerializer.TYPE_KEY));
  3. T object = createSavedObject(typeId, id, query);
  4. State state = State.getInstance(object);
  5. @SuppressWarnings("unchecked")
  6. Map<String, Object> dataJsonClone = (Map<String, Object>) cloneJson(dataJson);
  7. state.setValues(dataJsonClone);
  8. if (query != null && ObjectUtils.to(boolean.class, query.getOptions().get(RETURN_ORIGINAL_DATA_QUERY_OPTION))) {
  9. state.getExtras().put(ORIGINAL_DATA_EXTRA, data);
  10. }
  11. return swapObjectType(query, object);
  12. }

代码示例来源:origin: perfectsense/dari

  1. /**
  2. * Builds an SQL statement that can be used to list all rows
  3. * matching the given {@code query}.
  4. */
  5. public String buildSelectStatement(Query<?> query) {
  6. try {
  7. Query<?> strippedQuery = query.clone();
  8. // Remove any possibility that multiple CachingDatabases will be cached in the sqlQueryCache.
  9. strippedQuery.setDatabase(this);
  10. strippedQuery.getOptions().remove(State.REFERENCE_RESOLVING_QUERY_OPTION);
  11. return addComment(sqlQueryCache.getUnchecked(strippedQuery), query);
  12. } catch (UncheckedExecutionException e) {
  13. Throwable cause = e.getCause();
  14. if (cause instanceof RuntimeException) {
  15. throw (RuntimeException) cause;
  16. } else {
  17. throw new DatabaseException(this, cause);
  18. }
  19. }
  20. }

代码示例来源:origin: perfectsense/dari

  1. protected <T> T createSavedObjectFromReplicationCache(byte[] typeId, UUID id, byte[] data, Map<String, Object> dataJson, Query<T> query) {
  2. T object = createSavedObject(typeId, id, query);
  3. State objectState = State.getInstance(object);
  4. objectState.setValues(cloneDataJson(dataJson));
  5. Boolean returnOriginal = query != null ? ObjectUtils.to(Boolean.class, query.getOptions().get(RETURN_ORIGINAL_DATA_QUERY_OPTION)) : null;
  6. if (returnOriginal == null) {
  7. returnOriginal = Boolean.FALSE;
  8. }
  9. if (returnOriginal) {
  10. objectState.getExtras().put(ORIGINAL_DATA_EXTRA, data);
  11. }
  12. return swapObjectType(query, object);
  13. }

代码示例来源:origin: perfectsense/dari

  1. /**
  2. * Creates a previously saved object using the given {@code result},
  3. * and sets common state options based on the given {@code query}.
  4. *
  5. * @param result Nonnull.
  6. * @param query Nullable.
  7. * @return Nonnull.
  8. * @see #createSavedObject(Object, Object, Query)
  9. */
  10. protected <T> T createSavedObjectUsingResultSet(ResultSet result, Query<T> query) throws SQLException {
  11. T object = createSavedObject(result.getObject(2), result.getObject(1), query);
  12. State objectState = State.getInstance(object);
  13. if (!objectState.isReferenceOnly()) {
  14. byte[] data = result.getBytes(3);
  15. if (data != null) {
  16. objectState.setValues(StateSerializer.deserialize(data));
  17. objectState.getExtras().put(DATA_LENGTH_EXTRA, data.length);
  18. if (query != null
  19. && ObjectUtils.to(boolean.class, query.getOptions().get(RETURN_ORIGINAL_DATA_QUERY_OPTION))) {
  20. objectState.getExtras().put(ORIGINAL_DATA_EXTRA, data);
  21. }
  22. }
  23. }
  24. return swapObjectType(query, object);
  25. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public boolean equals(Object other) {
  3. if (this == other) {
  4. return true;
  5. } else if (other instanceof Query) {
  6. Query<?> otherQuery = (Query<?>) other;
  7. return ObjectUtils.equals(group, otherQuery.group)
  8. && ObjectUtils.equals(objectClass, otherQuery.objectClass)
  9. && ObjectUtils.equals(predicate, otherQuery.predicate)
  10. && ObjectUtils.equals(getSorters(), otherQuery.getSorters())
  11. && ObjectUtils.equals(getDatabase(), otherQuery.getDatabase())
  12. && ObjectUtils.equals(getFields(), otherQuery.getFields())
  13. && ObjectUtils.equals(getOptions(), otherQuery.getOptions())
  14. && isResolveToReferenceOnly == otherQuery.isResolveToReferenceOnly
  15. && ObjectUtils.equals(timeout, otherQuery.timeout);
  16. } else {
  17. return false;
  18. }
  19. }

代码示例来源:origin: perfectsense/dari

  1. @Override
  2. public int hashCode() {
  3. return ObjectUtils.hashCode(
  4. getGroup(),
  5. getObjectClass(),
  6. getPredicate(),
  7. getSorters(),
  8. getDatabase(),
  9. getFields(),
  10. getOptions(),
  11. isResolveToReferenceOnly(),
  12. getTimeout());
  13. }

相关文章