小编vin*_*lcy的帖子

如何在postgresql中计算JSON的setof/key数?

我有一个jsonb存储地图的列,就像{'a':1,'b':2,'c':3}每行中键的数量不同.

我想算一下 - jsonb_object_keys可以检索密钥,但它在 setof

有这样的事吗?

(select count(jsonb_object_keys(obj) from XXX )
Run Code Online (Sandbox Code Playgroud)

(这不会起作用ERROR: set-valued function called in context that cannot accept a set)

Postgres JSON函数和操作符文档

json_object_keys(json)
jsonb_object_keys(jsonb)

setof text  Returns set of keys in the outermost JSON object.
json_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"}}')  

json_object_keys
------------------
f1
f2
Run Code Online (Sandbox Code Playgroud)

交叉表不可行,因为密钥的数量可能很大.

sql postgresql json

9
推荐指数
3
解决办法
6893
查看次数

使用 Gradle 创建具有依赖 Jars 的 Osgi Bundle

我想创建一些依赖于其他(第 3 方)罐子的包(这是否是一个好的做法是另一个话题)

我能够使用 gradle 生成一个胖 jar(它包含所有依赖的 jar)和 osgi 清单

我的项目 Layout 将 jar 存储在 libs/ 文件夹中 制作 jar 后,第 3 方 jar(例如 ibm.jar)位于 jar 的根目录中。

我将我的 gradle 任务是使用带有一些基本 osgi 指令的 osgi 插件,我仅手动将导出包指定为我的程序包,而不是其他 3 个 jar

但是,当我尝试安装该捆绑包时,它显示错误

Error starting file:****.jar (org.osgi.framework.BundleException: Unresol
ved constraint in bundle ***** [24]: Unable to resolve 24.0: missi
ng requirement [24.0] osgi.wiring.package; (osgi.wiring.package=com.ibm.mq))
org.osgi.framework.BundleException: Unresolved constraint in bundle **** [24]: Unable to resolve 24.0: missing requirement [24.0] osgi.wiring.package; (osgi.wiring.package=com.ibm.mq)
        at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:382
6)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1868)
        at …
Run Code Online (Sandbox Code Playgroud)

osgi gradle apache-felix

5
推荐指数
1
解决办法
3804
查看次数

优雅的方式处理Scala Map中缺少的键和空值

我明白

  • 在Scala中应该避免使用null
  • 和Map.get将返回一个Option [B],我可以使用.getOrElse来获取值并回退到默认值

例如

map.getOrElse("key1","default")
Run Code Online (Sandbox Code Playgroud)

同时我正在与Java库进行交互,其中一些值为null.

例如Map("key1" - > null)

getOrElse 在这种情况下将抛出空指针.

我想处理这两种情况并导致写这样的东西

  def getOrElseNoNull[A,B](map:Map[A,B],key:A,default:B) = {
    map.get(key) match{
      case Some(x) if x != null => x
      case _ => default
    }
  }
Run Code Online (Sandbox Code Playgroud)

这很难看.(它是Map [A​​ny],我需要一个来自该键的字符串)

getOrElseNoNull(map,"key1","").asInstanceOf[String])
Run Code Online (Sandbox Code Playgroud)

是否可以使用隐式来扩展地图,或任何其他优雅的方式?

scala

2
推荐指数
2
解决办法
5851
查看次数

标签 统计

apache-felix ×1

gradle ×1

json ×1

osgi ×1

postgresql ×1

scala ×1

sql ×1