相关疑难解决方法(0)

如何在JPA中创建和处理复合主键

我想拥有来自相同数据条目的版本.换句话说,我想用另一个版本号复制该条目.

id - Version 将是主键.

该实体应该如何?如何与其他版本复制?

id Version ColumnA

1   0      Some data
1   1      Some Other data
2   0      Data 2. Entry
2   1      Data
Run Code Online (Sandbox Code Playgroud)

java jpa java-ee composite-primary-key

103
推荐指数
3
解决办法
15万
查看次数

使用身份标识符生成器时,Hibernate禁用插入批处理

Hibernate文档说:

如果您使用身份标识符生成器,​​Hibernate会透明地禁用JDBC级别的插入批处理.

但是我的所有实体都有这样的配置:

@Id
@GeneratedValue(strategy = javax.persistence.GenerationType.IDENTITY)
private Integer id;
Run Code Online (Sandbox Code Playgroud)

当我在上面使用这个身份时

  1. 有什么问题IDENTITY
  2. 是否禁用批量插入?
  3. 我怎么解决这个问题?

java spring hibernate jpa transactions

21
推荐指数
1
解决办法
8647
查看次数

在Hibernate中使用Native SQL批量插入

我想使用Hibernate Native SQL在数据库中插入记录.代码如下所示

 Session session = sessionFactory.openSession();
 Transaction tx = session.beginTransaction();

String sqlInsert = "insert into sampletbl (name) values (?) ";
for(String name : list){
   session.createSQLQuery( sqlInsert )
          .setParameter(1,name)
          .executeUpdate();
} 
tx.commit();
session.close();
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常.我认为这不是最好的方法.如果有的话,请给我另一种可能的方法.谢谢

java mysql hibernate

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

H2数据库Postgres模式Upsert

当H2数据库处于Postgres模式时,如何检查它是否支持以下语句(upsert/on conflict)

INSERT INTO event_log_poller_state(aggregate_type, consumer_group_id, value) VALUES (?, ?, ?) on conflict (aggregate_type, consumer_group_id) " +
                    " do update SET VALUE = ? WHERE event_log_poller_state.aggregate_type = ? AND event_log_poller_state.consumer_group_id = ?
Run Code Online (Sandbox Code Playgroud)

我得到语法错误42000

我写了以下程序来演示

https://github.com/tonymurphy/h2-postgres

java postgresql h2

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

JPA batch_size 属性不适用于本机查询

我正在尝试使用本机查询进行批量插入。

@Repository
public interface Repository extends CrudRepository<Entity, Integer> {

    @Modifying
    @Query(value = "INSERT INTO table_name(value) VALUES (:value)", nativeQuery = true)
    void insert(@Param("value") String value);
}
Run Code Online (Sandbox Code Playgroud)

我已将batch_size属性添加到application.properties文件中

spring.jpa.properties.hibernate.jdbc.batch_size = 50
Run Code Online (Sandbox Code Playgroud)

但在日志中,我看到每个插入都是单独处理的。是否可以将批处理应用于本机查询?

sql hibernate jpa bulk spring-boot

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