小编Gio*_*ato的帖子

MongoDB日期比较

MongoDB如何进行日期比较?我在MongoDB shell上尝试了一些测试:

> db.test.insert( { "dates" : [ new Date("Jul 21, 1983"), new Date("Aug 7, 1999") ] } )
"ok"
> db.test.find()

[ 
  {   "_id" : {   "$oid" : "5201e8b7cc93742c160bb9d8"   },   "dates" : [   "Thu Jul 21 1983 00:00:00 GMT+0200 (CEST)",   "Sat Aug 07 1999 00:00:00 GMT+0200 (CEST)" ]   }
]
Run Code Online (Sandbox Code Playgroud)

现在我将尝试获取日期dates大于2000年8月30 日的所有对象.

> db.test.find( { "dates" : { $gt : new Date("Aug 30, 2000") } } )

[

]
Run Code Online (Sandbox Code Playgroud)

正如所料,该文件不符合.使用"1999年8月30日",而不是......

> db.test.find( { dates : { $gt …
Run Code Online (Sandbox Code Playgroud)

datetime mongodb

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

复杂表单上输入名称的HTML标准

name在复杂的HTML表单input元素中选择属性值有一个标准或好的做法吗?例如:

<input type="text" name="post[comments][0][author][name]" />
Run Code Online (Sandbox Code Playgroud)

但是多重价值呢?我应该用吗?

<input type="file" multiple name="post[attachments]" />
Run Code Online (Sandbox Code Playgroud)

要么

<input type="file" multiple name="post[attachments][]" />
Run Code Online (Sandbox Code Playgroud)

PHP仅支持后者,但W3C在其示例中使用前者.因为我正在解析原始multipart/form-data实体,所以我不依赖于特定的语言; 我在寻找标准,最佳实践或建议.

html forms web-standards w3c-validation

8
推荐指数
1
解决办法
2078
查看次数

我应该在Java 9中使用哪个模块来使用JPA?

我正在使用需要JPA(javax.persistence.*类)的项目来测试Java 9 .当我添加module-info.java并声明我的模块时,javax.persistece包下的所有类都变得不可用.

我搜索了很多,但我找不到要求在Java 9模块项目中使用JPA的模块.

更新 正如艾伦建议的那样,我跑了

$ jar --describe-module --file=javax.persistence-api-2.2.jar

No module descriptor found. Derived automatic module.

java.persistence@2.2 automatic
requires java.base mandated
contains javax.persistence
contains javax.persistence.criteria
contains javax.persistence.metamodel
contains javax.persistence.spi
Run Code Online (Sandbox Code Playgroud)

但仍然有这个 module-info.java

module my.module {

    requires java.persistence;

}
Run Code Online (Sandbox Code Playgroud)

我找不到"module-info.java:[3,18]模块:java.persistence".

更新2 这是我的项目结构:

.
??? pom.xml
??? src
    ??? main
    ?   ??? java
    ?   ?   ??? my
    ?   ?   ?   ??? module
    ?   ?   ?       ??? MyBean.java
    ?   ?   ??? module-info.java
    ?   ??? resources
    ??? …
Run Code Online (Sandbox Code Playgroud)

java jpa java-9 module-info

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

在Eclipse中键入PHP时错误的数组初始化程序缩进

我在Preferences> PHP> Code Style> Fromatter> Line Wrapping上设置了我首选的数组初始化缩进,但在键入数组初始化时缩进是错误的:

$arr = array([ENTER]
····[CURSOR])
Run Code Online (Sandbox Code Playgroud)

虽然我期待:

$arr = array([ENTER]
··[CURSOR]
)
Run Code Online (Sandbox Code Playgroud)

喜欢它编辑Javascript代码.请注意,错误的缩进仅在键入时发生,而显式的CTRL + SHIFT + F正确缩进数组初始化程序.(因此,在设置缩进时,不会出现许多其他问题的重复,因为这里设置了缩进,但在键入时没有应用.)

如何在键入数组初始值设定项时获得正确的缩进?

php eclipse arrays indentation

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

泽西与Tyrus结合

我有一个在Grizzly实例上运行的Jersey JAX-RS应用程序:

public class Application {
    public static final String BASE_URI = "http://127.0.0.1:8080/rest";

    public static void main(String[] args) throws IOException {
        ResourceConfig rc = new ResourceConfig().packages("my.package.rest");
        HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
        System.out.println("Server started, press any key to stop.");
        System.in.read();
        server.shutdownNow();
    }
}
Run Code Online (Sandbox Code Playgroud)

里面my.package.rest有JAX-RS注释资源.我想补充的WebSocket注释(@ServerEndpoint,@OnOpen,@OnMessage等)在同一服务器实例使用泰鲁斯资源(在说" http://127.0.0.1:8080/websocket "),但我能找到的显示所有文件如何使用Tyrus + Grizzly容器启动独立的websocket服务器,而不是与Jersey结合使用.我正在寻找类似的东西:

server.getServerConfiguration().addHttpHandler(new SomeTyrusHttpHandler("/websocket"));
Run Code Online (Sandbox Code Playgroud)

但我找不到类似的东西SomeTyrusHttpHandler.如何在单个Grizzly服务器中结合Jersey和Tyrus?

jax-rs jersey grizzly websocket tyrus

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

为什么Eclipse没有显示流的泄漏警告?

在Eclipse Neon中,如果我编写这个Java代码:

Stream<Object> stream = Stream.builder().build();
Run Code Online (Sandbox Code Playgroud)

我没有泄漏警告,但如果我实施Stream,如

public class MyStream<T> implements Stream<T> {
    // implementation
}
Run Code Online (Sandbox Code Playgroud)

我写了类似的代码

Stream<Object> stream = new MyStream<>();
Run Code Online (Sandbox Code Playgroud)

我收到Resource leak: 'stream' is never closed警告 这只发生在Eclipse中,而编译时javac不会发出任何警告.

注意我不是在寻找关于如何关闭流等的答案,而是寻找解释同一界面的这种不同行为的原因的答案.

java eclipse java-stream

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

结合 JPA 和 HIbernate Search Lucene 查询

我可以使用 Hibernate Search 使用全文查询轻松搜索我的 JPA 实体:

FullTextEntityManager fullTextEntityManager = 
        Search.getFullTextEntityManager(this.entityManager);

QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory()
        .buildQueryBuilder().forEntity(MyBean.class).get();

org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword()
        .onFields("foo", "bar").matching("needle").createQuery();

javax.persistence.Query jpaQuery = fullTextEntityManager
        .createFullTextQuery(luceneQuery, MyBean.class);

List<MyBean> fulltextResult = jpaQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)

这很棒。但是,如何luceneQuery在现有的 JPA 查询中组合 ?例如作为在CriteriaBuilder.where()表达式中使用的谓词。我认为这可能是可能的,因为 Hibernate Search 从其索引中检索实体标识符,并最终在 JPA 查询中使用它们来获取结果,但我不知道是否还有其他方法getResultList()可以在其他中间类型中获取查询,例如一个javax.persistence.criteria.Predicate.

lucene hibernate jpa hibernate-search

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

为什么Hibernate有时会忽略FetchMode.JOIN?

我有一个@ManyToOne关系的实体,我想用一个查询检索,因此使用@Fetch(FetchMode.JOIN).有时Hibernate不尊重并发布N + 1 SELECT.随着有时我的意思是,因为我不知道是什么触发它,我有案件对不同的查询,这可能发生,或者不一样的类.

这是一个带有我使用的注释的简化实体:

@Entity
public class Employee {

    @ManyToOne
    @Fetch(FetchMode.JOIN)
    private Department department;

}
Run Code Online (Sandbox Code Playgroud)

CriteriaQuery<Employee> criteriaQuery = criteriaBuilder.createQuery(Employee.class);

Root<Employee> root = criteriqQuery.from(Employee.class);

TypedQuery<Employee> typedQuery = entityManager.createQuery(criteriaQuery);

List<Employee> employees = typedQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)

我希望一个查询来获取两个EmployeeDepartment,像

select ... from Employee join Department on ...
Run Code Online (Sandbox Code Playgroud)

相反,我得到所有N的Employee第一个选择,然后SELECT是所有Departments的N s(考虑没有缓存).

我发现了许多类似的问题,但他们的答案提出了解决方法,并没有解释为什么会发生这种情况.请避免建议使用延迟加载的答案:这不是我问的问题.

java optimization hibernate jpa

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

新 Eclipse Maven 项目的默认 pom.xml

我在 Eclipse Neon.1 上,当我创建新的 Maven 项目时,我会得到一个默认的pom.xml内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>test</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>test</name>

</project>
Run Code Online (Sandbox Code Playgroud)

如何修改此默认模板?我想添加一些属性,例如

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <name>test</name>

    <properties>
        <encoding>UTF-8</encoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

</project>
Run Code Online (Sandbox Code Playgroud)

当然,我可以创建自己的原型并使用它来拥有这个 pom,但是该m2e插件是如此可配置,我希望这在没有原型的情况下也是可能的。

java eclipse m2eclipse pom.xml maven

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

懒惰评估Optional

是否java.util.Optional只有在需要时才进行评估?

我需要将传递Optional给(我无法更改的API的)方法,该方法可能会也可能不会使用那个值Optional。由于值是由一个重运算来计算,我想以计算值,只有当(如果)它是需要的,例如呼叫get()orElseGet()ifPresent()等。

有点像Optional.ofLazy(Supplier<T> computeValue)

java lazy-evaluation optional

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