Spring中JpaRepostory delete(...)和deleteInBatch(...)方法有什么区别?第二个"删除一个SQL语句中的项目",但从应用程序/数据库的角度来看它意味着什么?为什么存在两种具有相似结果的不同方法,何时使用一种或另一种更好?
编辑:
这同样也适用于deleteAll()和deleteAllInBatch()...
我在使用Oracle java 8u25的Windows 7 64位上的Spring工具套件3.6.2(Eclipse clon)下遇到了奇怪的nullcheck分析行为.与java 7源兼容性相同的maven项目在eclipse中成功找到NPE错误,但是当我将maven中的编译版本更改为java 1.8时,eclipse无法找到此错误.
我在Eclipse中的nullcheck分析配置(Java-> Compiler-> Errors/Warnings-> Null分析)是:在null分析中包含断言true启用基于注释的分析true NotNull自定义注释正确设置为javax.validation.constraints.NotNull等. (一切似乎没问题,因为它在java 7下工作)
我的maven pom在这里http://pastebin.com/pF1yJSG2,如上所述当pom中的java.version是1.7 null检查工作时,当1.8为空时检查不起作用.
示例源代码是:
package test.nullcheckbug.core;
import javax.validation.constraints.NotNull;
public class Program {
/**
* This will fail to compile under java 7 (null analysis works in STS
* 3.6.2). But under java 8 it does not show error in Eclipse Markers -
* static analysis does not work ?!
*
* @return null which is not allowed
*/
@NotNull
public String fail() { …Run Code Online (Sandbox Code Playgroud) Keycloak 是否支持基本身份验证(包含单词 Basic 单词后跟一个空格和一个 base64 编码字符串 username:password 的授权标头),如果支持,我如何为其配置领域和客户端设置?我想用 Keycloak 保护我的 rest api 并支持基本身份验证作为一个选项。
我们在 Windows Server 2016 上安装了 Oracle 12c,在 Windows Server 2019 上安装了 MS SQL Server 2017。
当我们尝试通过SELECT count(*) FROM SMSOUT@TOSIMSQLSERVER从 Oracle -> MS SQL 使用数据库链接时,我们得到以下错误:
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from TOSIMSQLSERVER
28545. 0000 - "error diagnosed by Net8 when connecting to an agent"
*Cause: An attempt to call an external procedure or to issue SQL
to a non-Oracle system on a …Run Code Online (Sandbox Code Playgroud) 我使用以下 Java 代码来运行 SQL 脚本:
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
DataSource ds;
@Value("classpath:test.sql")
Resource resource;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) throws Exception {
try {
@Cleanup
Connection c = ds.getConnection();
ScriptUtils.executeSqlScript(c, resource);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的 Spring boot 版本是 2.1.7.RELEASE,PostgreSQL 通过以下方式在本地 docker 镜像中运行:
docker run --rm --name pg-docker -e POSTGRES_PASSWORD=PASSWORD -d -p 5432:5432 -v postgresql:/var/lib/postgresql/data postgres:11.3
Run Code Online (Sandbox Code Playgroud)
我使用的 SQL 脚本是:
CREATE OR REPLACE …Run Code Online (Sandbox Code Playgroud) 我正在将 TestNG 与 Spring 和 JPA 一起使用。到目前为止,我正在使用我的测试类来测试数据库内容,该类扩展了AbstractTransactionalTestNGSpringContextTests. 随着@TransactionConfiguration(defaultRollback = true)一切工作正常,我并不需要有关清理卡里。Spring 在我的每个测试方法的开头创建一个默认事务,然后回滚。这是解决著名的“事务性测试被认为有害”问题的一个非常巧妙的技巧。
不幸的是,我需要这个类中的一种方法(一个测试)没有这个默认事务。这是因为此测试方法模拟批处理,并且我在其中有多个独立于生产的事务。我能够模拟和解决问题的唯一方法是配置这些内部事务,Propagation.REQUIRES_NEW但我不想在生产代码中使用。有没有一些方法来禁用Spring的事务对我特别的测试方法(所以我并不需要使用Propagation.REQUIRES_NEW,但Propagation.REQUIRED在我的服务方法)?
java ×5
spring ×3
eclipse ×1
jpa ×1
keycloak ×1
maven ×1
null-check ×1
oracle ×1
postgresql ×1
spring-data ×1
spring-jdbc ×1
sql-server ×1
testng ×1
transactions ×1