Java 错误:在 PostgreSQL 中 COALESCE 类型 bytea 和字符不同

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20754466/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 04:06:10  来源:igfitidea点击:

ERROR: COALESCE types bytea and character varying in PostgreSQL

javahibernatepostgresqlcoalesce

提问by LoveTW

I write a postgresql and pass parameter name1from my java code with Spring + Hibernate.

我编写了一个 postgresql 并name1使用 Spring + Hibernate 从我的 java 代码中传递参数。

SELECT * FROM Test
WHERE name = COALESCE(:name1, name2)

but i got an error

但我有一个错误

ERROR: COALESCE types bytea and character varying

The type of name1is String in my java code.

name1我的java代码中的类型是String。

I tried to solve the problem

我试图解决这个问题

COALESCE(convert_from(:name1,'UTF8'), name2)

It will pass JUNIT Test in Eclipse. However when I run it on Tomcat, I will get an error

它将通过 Eclipse 中的 JUNIT 测试。但是当我在Tomcat上运行它时,我会得到一个错误

Error:convert_from(character varying, unknown) not exist

How to solve it? Thanks.

如何解决?谢谢。

采纳答案by LoveTW

I have solve my question.

我已经解决了我的问题。

SELECT * FROM Test
WHERE name = COALESCE(CAST(:name1 AS TEXT), name2)

Thank Erwin Brandstetter for giving me advise.

感谢 Erwin Brandstetter 给我的建议。