当从服务层调用long 的saveAll方法时,Hibernate的跟踪日志记录显示每个实体发出的单个SQL语句.JpaRepositoryList<Entity>
我可以强制它进行批量插入(即多行)而无需手动操作EntityManger,事务等甚至原始SQL语句字符串?
对于多行插入,我的意思不仅仅是从:
start transaction
INSERT INTO table VALUES (1, 2)
end transaction
start transaction
INSERT INTO table VALUES (3, 4)
end transaction
start transaction
INSERT INTO table VALUES (5, 6)
end transaction
Run Code Online (Sandbox Code Playgroud)
至:
start transaction
INSERT INTO table VALUES (1, 2)
INSERT INTO table VALUES (3, 4)
INSERT INTO table VALUES (5, 6)
end transaction
Run Code Online (Sandbox Code Playgroud)
而是:
start transaction
INSERT INTO table VALUES (1, 2), (3, 4), (5, 6)
end transaction
Run Code Online (Sandbox Code Playgroud)
在PROD中,我使用的是CockroachDB,性能差异很大.
下面是一个重现问题的简单示例(H2为简单起见). …
有没有办法用云扳手进行本地开发?我已经浏览了文档和CLI工具,似乎没有任何东西.或者,有人可以建议一个SQL数据库,其行为类似于读取(不确定如何处理写入)?
编辑:澄清一下,我正在寻找一个与Cloud Spanner具有相同SQL风格的数据库,因此我可以在本地进行开发.确切的性能特征不如API和一致性行为重要.我认为Cockroach不符合这些要求吗?
sql database google-cloud-platform cockroachdb google-cloud-spanner
根据文档,我已经设置并部署了包含三个CockroachDB pod的Kubernetes状态集.我的最终目标是在不需要使用kubectl的情况下查询数据库.我的中间目标是查询数据库而不实际炮轰到数据库pod中.
我将一个端口从一个端口转发到我的本地机器,并尝试连接:
$ kubectl port-forward cockroachdb-0 26257
Forwarding from 127.0.0.1:26257 -> 26257
Forwarding from [::1]:26257 -> 26257
# later, after attempting to connect:
Handling connection for 26257
E0607 16:32:20.047098 80112 portforward.go:329] an error occurred forwarding 26257 -> 26257: error forwarding port 26257 to pod cockroachdb-0_mc-red, uid : exit status 1: 2017/06/07 04:32:19 socat[40115] E connect(5, AF=2 127.0.0.1:26257, 16): Connection refused
$ cockroach node ls --insecure --host localhost --port 26257
Error: unable to connect or connection lost.
Please check …Run Code Online (Sandbox Code Playgroud) 我想完成两件事:
1)使用docker compose启动一个CockroachDB集群(有效)
2)在群集上执行SQL命令(我想创建一个数据库)
我的Docker文件如下所示:
version: '3'
services:
roach-ui:
image: cockroachdb/cockroach
command: start --insecure
expose:
- "8080"
- "26257"
ports:
- "26257:26257"
- "8080:8080"
networks:
- roachnet
db-1:
image: cockroachdb/cockroach
command: start --insecure --join=roach-ui
networks:
- roachnet
volumes:
- ./data/db-1:/cockroach/cockroach-data
networks:
roachnet:
Run Code Online (Sandbox Code Playgroud)
当我运行docker-compose up时,一切都按预期工作。使用google时,我发现解决方案是运行bash脚本,我创建了以下setup.sh:
sql --insecure --execute="CREATE TABLE testDB"
Run Code Online (Sandbox Code Playgroud)
我试图通过命令bash -c“ setup.sh”运行脚本,但是Docker表示无法运行命令“ bash”。有什么建议么 ?谢谢 :)
编辑:
我正在运行docker-compose up,我得到的错误是:
roach-ui_1 | Failed running "bash"
heimdall_roach-ui_1 exited with code 1
Run Code Online (Sandbox Code Playgroud) 我有一个有 2 列的表;ID (int) and EntityData (JSON)。我在 C# 中以字典的形式创建了一个过滤器对象。我想获取满足过滤器中键值对数据的所有行。
示例过滤器是:
{
"Name": "mike",
"Location": "Lagos"
}
Run Code Online (Sandbox Code Playgroud)
这应该获取 EntityData 名称为 mike、位置为 Lagos 的所有行。
我试图从另一个 RDBMS 迁移到 cockroachDB,但我认为 Cockroach 中没有像存储过程这样的功能。那么在 cockroachDB 中创建存储过程的最佳替代方案是什么?
database migration stored-procedures cockroachdb cockroachcloud
我尝试DESCRIBE TABLE...在 CockroachDB 中使用 Oracle 的语句并出现语法错误。什么是等效命令?
是否有一个简单的命令可以让我删除数据库中的所有表?我设置了用户/授权,所以我不想删除数据库本身,只删除其中的表。
cockroachdb ×10
database ×2
bash ×1
go ×1
hibernate ×1
kotlin ×1
kubernetes ×1
migration ×1
npgsql ×1
postgresql ×1
spring-boot ×1
sql ×1