小编l00*_*0tr的帖子

如何在Java中初始化Google协议缓冲区时间戳?

Google协议缓冲区(3.0.0-beta2)提供了众所周知的Timestamp类型.

该文档使用System.currentTimeMillis()描述Java中的初始化,如下所示:

long millis = System.currentTimeMillis();
Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
    .setNanos((int) ((millis % 1000) * 1000000)).build();
Run Code Online (Sandbox Code Playgroud)

在最近的Java 8中另一种方法吗?

java timestamp protocol-buffers

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

是否可以将Spring Data JPA中的@Lock和@Modifying @Query结合在一起使用Hibernate?

将@Lock批注与@Modifying @Query查询本身执行更新语句一起使用时,我遇到问题。我的测试设置如下:

  • Spring Boot Starter 1.5.3。发布
  • 休眠5.2.10.Final
  • Spring Data JPA 1.11.3版本

经过测试的数据库:H2,PostgreSQL,MariaDB,Oracle

样本实体:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Version;

@Entity
@Table(name = "\"users\"")
public class User {

    @Id
    private Long id;

    private boolean active;

    @Version
    @Column(nullable = false)
    private long version = 0L;

    // getters/setters (not shown)

}
Run Code Online (Sandbox Code Playgroud)

存储库如下所示:

import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;

public interface UserRepository extends CrudRepository<User, Long> {

    @Modifying
    @Query("UPDATE User u SET u.active …
Run Code Online (Sandbox Code Playgroud)

java hibernate spring-data-jpa

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

如何在 Spring Data JPA 中为自定义 @Query 提供和使用 varargs 或 Iterable 参数?

我使用 Spring Data JPA(当前为 1.11.3.RELEASE)和 Hibernate(当前为 5.2.10.Final)作为 JPA 实现

我有以下场景作为(简化的)示例,首先是一个简单的 User 实体类:

@Entity
public class User {

@Id
private Long id;

private boolean active;

// getters/setters (not shown)

}
Run Code Online (Sandbox Code Playgroud)

具有基于 CRUD 的用户存储库。这个用户存储库应该提供方法来停用由其 id 标识的用户:

public interface UserRepository extends CrudRepository<User, Long> {

// deactivate single user
@Modifying
@Query("UPDATE User u SET active = false WHERE u.id = ?1")
void deactivate(Long id);

// TODO how to provide a deactivateAll method
}
Run Code Online (Sandbox Code Playgroud)

Spring Data JPA 文档中使用@Query 的修改形式很好地描述了该解决方案。

我在文档中错过的是如何提供 ids 列表作为 …

java spring-data-jpa

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

当实体包含 UUID 时,H2 数据库的 Hibernate 数据库模式验证失败

对于映射到具有 UUID实体H2 数据库架构Hibernate ddl 验证失败并出现异常

根本原因:org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:在表 [ 中的 [testuuid] 列中遇到错误的列类型TESTdummy]; 找到 [varbinary (Types#VARBINARY)],但期待 [binary (Types#BINARY)]

设置:

  • 休眠 5.2.9.Final
  • H2 1.4.194

进一步的休眠设置:

  • hibernate.hbm2ddl.auto=验证
  • 未明确设置数据库方言。

H2 DDL 最初是用休眠生成的,导致UUID在 H2 数据库模式中由“二进制”表示

禁用验证有效,但不是一个选项。

我该如何解决这个问题?

java hibernate h2

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

是否可以使用whenComplete(...)向CompletableFuture添加多个操作?

该类CompletableFuture允许添加在调用后未来完成时调用的操作complete(...).

我可以使用whenComplete(...)添加多个BiConsumer动作完成以后,并且当所有的人都在执行时执行complete(...)方法被调用?

java completable-future

0
推荐指数
1
解决办法
455
查看次数