我有以下工作流程:
\n\n下面是签名创建方法:
\n\npublic static String createXMLDSign(String xmlString) throws Exception{\n // Create a DOM XMLSignatureFactory that will be used to\n // generate the enveloped signature.\n String providerName = System.getProperty("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");\n XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).newInstance());\n\n // Load the KeyStore and get the signing key and certificate.\n KeyStore ks = KeyStore.getInstance("JKS");\n ks.load(new FileInputStream("src/main/resources/jks/client-keystore.jks"), keyStorePass .toCharArray());\n KeyStore.PrivateKeyEntry keyEntry =\n (KeyStore.PrivateKeyEntry) ks.getEntry\n ("client-keypair", new KeyStore.PasswordProtection(keyPass .toCharArray()));\n X509Certificate cert = (X509Certificate) keyEntry.getCertificate();\n\n …Run Code Online (Sandbox Code Playgroud) 我想进行动态查询,其中如果发送特定参数,本机查询应根据它过滤结果。如果它为空,则不应反映结果。
我使用带有本机查询机制的 Spring Data JPA + Oracle DB
对于字符串参数,这种方法效果很好
:email is null or s.email = :email
Run Code Online (Sandbox Code Playgroud)
但对于整数参数,当它们具有值时,查询可以工作,但如果参数为空,查询将失败并出现错误
引起原因:java.sql.SQLSyntaxErrorException:ORA-00932:数据类型不一致:预期的 NUMBER 得到了 BINARY
我对 Integer 使用完全相同的方法而不是 String
我想知道问题是在我这边还是某种错误?