小编Ale*_*yda的帖子

为什么PostgreSQL对索引列执行顺序扫描?

非常简单的例子 - 一个表,一个索引,一个查询:

CREATE TABLE book
(
  id bigserial NOT NULL,
  "year" integer,
  -- other columns...
);

CREATE INDEX book_year_idx ON book (year)

EXPLAIN
 SELECT *
   FROM book b
  WHERE b.year > 2009
Run Code Online (Sandbox Code Playgroud)

给我:

Seq Scan on book b  (cost=0.00..25663.80 rows=105425 width=622)
  Filter: (year > 2009)
Run Code Online (Sandbox Code Playgroud)

为什么它不执行索引扫描?我错过了什么?

postgresql indexing sequence database-scan

132
推荐指数
4
解决办法
5万
查看次数

杰克逊:如何在不修改POJO的情况下向JSON添加自定义属性

我正在为我的应用程序开发一个REST接口,使用Jackson将我的POJO域对象序列化为JSON表示.我想为某些类型自定义序列化,以便为POJO中不存在的JSON表示添加其他属性(例如,添加一些元数据,参考数据等).我知道如何编写自己的JsonSerializer,但在这种情况下,我需要为我的对象的每个属性显式调用JsonGenerator.writeXXX(..)方法,而我只需添加一个额外的属性.换句话说,我希望能够写出如下内容:

@Override
public void serialize(TaxonomyNode value, JsonGenerator jgen, SerializerProvider provider) {
    jgen.writeStartObject();
    jgen.writeAllFields(value); // <-- The method I'd like to have
    jgen.writeObjectField("my_extra_field", "some data");
    jgen.writeEndObject();
}
Run Code Online (Sandbox Code Playgroud)

或者(甚至更好)在jgen.writeEndObject()调用之前以某种方式拦截序列化,例如:

@Override void beforeEndObject(....) {
    jgen.writeObjectField("my_extra_field", "some data");
}
Run Code Online (Sandbox Code Playgroud)

我以为我可以扩展BeanSerializer和覆盖它的serialize(..)方法,但是它被声明了final,而且我找不到一种简单的方法来创建一个新的实例BeanSerializer而不提供所有类型的元数据细节实际上复制了杰克逊的一部分.所以我放弃了这样做.

我的问题是 - 如何定制Jackson的序列化,为特定POJO的JSON输出添加额外的东西,而不会引入太多的样板代码并尽可能多地重用默认的Jackson行为.

java customization serialization json jackson

55
推荐指数
6
解决办法
5万
查看次数

Freemarker:如何使用枚举作为键来迭代Map

以下代码不起作用,因为Freemarker似乎将[]中的表达式的值转换为String,然后将其用作键,这不是实际预期的.

准备模板模型:

Map<MyEnum, Object> myMap;
myMap.put(MyEnum.FOO, "Foo");
myMap.put(MyEnum.BAR, "Bar");
templateModel.put("myMap", myMap);
Run Code Online (Sandbox Code Playgroud)

my.ftl:

<#list myMap?keys as key>
    <#assign value = myMap[key]>
    <li>${key} = ${value}</li>
</#list>
Run Code Online (Sandbox Code Playgroud)

Freemarker文档中,它描述了如何访问Enum本身,但我没有找到任何关于如何使用Enum作为键从哈希值中获取值的信息.

谢谢.

java enums freemarker key map

13
推荐指数
1
解决办法
1万
查看次数

JavaScript:我可以使用方括号([])运算符作为函数吗?

任何任意对象是否有可能获得对访问者函数的引用,该函数与[]操作符完全相同?

像下面这样的东西?:

function get(x) { return this[x] }
Run Code Online (Sandbox Code Playgroud)

因此,如果我有一个对象foo而不是foo['bar']我可以打电话foo.get('bar')

javascript

9
推荐指数
1
解决办法
1490
查看次数

ElasticSearch:重用嵌套类型映射

我有一个对象具有相同复杂类型的几个属性,我想在ElastcSearch中进行索引.

例如:

Root {
  a : Foo
  b : Foo
  c : Foo
}

Foo {
  x : Bar
  y : Bar
  z : Bar
}

Bar {
   ...
}

etc.
Run Code Online (Sandbox Code Playgroud)

Rootroot 在哪里,Foo, Bar是嵌套对象.

如何避免重复类型FooBarElasticSearch映射JSON文件的嵌套类型定义?

mapping elasticsearch

7
推荐指数
1
解决办法
359
查看次数

Hibernate:我应该将'version'字段包含在hashcode()和equals()方法中

我知道,当覆盖hashcode()equals()我的持久化实体的我不应该包括ID,只包括有意义的属性唯一标识对象.但是Hibernate version用于乐观并发控制的字段呢?我应该跳过它,就像ID一样吗?如果让我们说new User(name='John', version=1).equals(new User(name='John',version=2)),不管怎么说它不会混淆Hibernate OCC呢?

hibernate version hashcode optimistic-locking optimistic-concurrency

6
推荐指数
1
解决办法
830
查看次数

Scala模式匹配:如何匹配列表中的元素?

是否可以使用Scala模式匹配重写以下代码?

val ls: List[String] = ??? // some list of strings

val res = if (ls.contains("foo")) FOO
     else if (ls.contains("bar")) BAR
     else SOMETHING_ELSE
Run Code Online (Sandbox Code Playgroud)

scala list pattern-matching

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

Thymeleaf:将任意值设置为任意属性

在我的Thymeleaf模板中,我需要将自定义属性设置为动态生成的值.我该怎么办?

我尝试过th:attr="name=value",但似乎对"价值"部分非常严格.例如,我尝试生成以下属性:

<div ng-init="myUrl='http://myhost.com/something'> ... </div>
Run Code Online (Sandbox Code Playgroud)

其中http://myhost.com/somethingng-initattrubute 的动态部分,由Thymeleaf的URL表达式生成,如@{...}

有关如何编写表达式以产生上述HTML的任何建议吗?

attributes expression nested thymeleaf

6
推荐指数
1
解决办法
4492
查看次数

Scalatest:如何检查集合是否包含满足特定条件的元素

说我有一份书籍清单:

val books = List(
    Book(title="Foo", year=2014),
    Book(title="Bar", year=2014))
Run Code Online (Sandbox Code Playgroud)

如果集合books不为空并且仅包含2014年发布的书籍,如何使用单个表达式进行检查?

scala matcher scalatest

6
推荐指数
1
解决办法
2266
查看次数

Spring MVC:为不同的带注释的控制器方法应用不同的 JSON 序列化器

我正在使用带注释的控制器和内容协商(@ResponceBody)创建 REST 服务。我有两个不同的控制器方法返回 {{Foo}} 的实例,它们服务于不同的用例,并且我希望这些方法的 {{Foo}} 的 JSON 表示形式不同。

例如:

@ResponseBody
public Foo method1() {... return new Foo(123); } // should produce '123'
@ResponseBody
public Foo method2() {... return new Foo(123); } // should produce '{name:"Foo", number:123}'
Run Code Online (Sandbox Code Playgroud)

当然,我可以使用 DTO 模式并在不同的方法中返回不同的 DTO(例如分别为 {{FooDTO1}} 和 {{FooDTO2}}),并简单地为这些 DTO 注册不同的 JSON 序列化器。但我想知道是否有更好的方法,对我来说,定义两个额外的 DTO 类并仅为了应用正确的 JSON 序列化器而创建这些类的一次性实例是错误的。我不能以某种方式向 Spring 或 Jackson 暗示哪种情况应该使用哪种序列化器吗?

spring-mvc content-negotiation jackson

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

Scala:如何在编译时不知道类型的情况下使用类型参数和清单调用方法?

我有一个具有以下签名的函数:

myFunc[T <: AnyRef](arg: T)(implicit m: Manifest[T]) = ???
Run Code Online (Sandbox Code Playgroud)

如果在编译时我不知道参数的确切类型,我该如何调用此函数?

例如:

val obj: AnyRef = new Foo()    // At compile time obj is defined as AnyRef,
val objClass = obj.getClass    // At runtime I can figure out that it is actually Foo
// Now I would need to call `myFunc[Foo](obj.asInstanceOf[Foo])`,
// but how would I do it without putting [Foo] in the square braces?
Run Code Online (Sandbox Code Playgroud)

我想写一些逻辑类似的东西:

myFunc[objClass](obj.asInstanceOf[objClass])
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:

问题是无效的 - 正如@DaoWen,@ Jermo和@itsbruce正确指出的那样,我试图做的事情完全是胡说八道!我只是严厉地推翻了这个问题.感谢你们!太糟糕了我不能接受所有答案正确:)

所以,问题是由以下情况引起的:

我正在使用Salat库将对象序列化为BSON/JSON表示/从BSON/JSON表示. Salat有一个Grater[T]用于序列化和反序列化的类.从BSON …

reflection types scala implicit

4
推荐指数
1
解决办法
1957
查看次数

为什么Hibernate会忽略package-info.java?

我正在尝试在包级别上使用Hibernate @TypeDef注释,就像在Hibernate文档中描述的那样.我正在使用Hibernate 3.6Spring 3.0.7.代码编译并且package-info.class在类路径中,但是Hibernate看不到它.

如果我@TypeDef上课,那它是有效的,但如果我放入了package-info.我试图谷歌但找不到任何有用的东西.

谢谢!

java annotations hibernate usertype

3
推荐指数
1
解决办法
4329
查看次数

使用样条线在 Spark 中启用沿袭时出错?

我尝试使用样条曲线使用此处指定的两种方式来跟踪 Spark 中的谱系 ,但这两种方法都因相同的错误而失败

错误 QueryExecutionEventHandlerFactory:样条线初始化失败!Spark 沿袭跟踪已禁用 Spark 代理无法与样条网关建立连接

原因:java.net.connectException:连接被拒绝

我可以在 port 看到 UI 80809090并且 arangoDB 也已启动并运行。

但没有显示血统。

我尝试过 pyspark 和 Spark-shell 但没有运气。任何帮助表示赞赏。

apache-spark pyspark spline-data-lineage-tracker

3
推荐指数
1
解决办法
1491
查看次数