javascript
java postgresql json_java – 将PostgreSQL JSON列映射到Hibernate值类...
See PgJDBC bug #265.
PostgreSQL對(duì)數(shù)據(jù)類型轉(zhuǎn)換過于嚴(yán)格,非常嚴(yán)格.它不會(huì)隱式地將文本轉(zhuǎn)換為類似文本的值,例如xml和json.
解決此問題的嚴(yán)格正確方法是編寫使用JDBC setObject方法的自定義Hibernate映射類型.這可能有點(diǎn)麻煩,所以你可能只想通過創(chuàng)建一個(gè)較弱的強(qiáng)制轉(zhuǎn)換來使PostgreSQL不那么嚴(yán)格.
正如@markdsievers在評(píng)論和this blog post中所指出的,此答案中的原始解決方案繞過了JSON驗(yàn)證.所以這不是你想要的.寫起來更安全:
CREATE OR REPLACE FUNCTION json_intext(text) RETURNS json AS $$
SELECT json_in($1::cstring);
$$LANGUAGE SQL IMMUTABLE;
CREATE CAST (text AS json) WITH FUNCTION json_intext(text) AS IMPLICIT;
AS IMPLICIT告訴PostgreSQL它可以轉(zhuǎn)換而不被明確告知,允許這樣的事情工作:
regress=# CREATE TABLE jsontext(x json);
CREATE TABLE
regress=# PREPARE test(text) AS INSERT INTO jsontext(x) VALUES ($1);
PREPARE
regress=# EXECUTE test('{}')
INSERT 0 1
感謝@markdsievers指出了這個(gè)問題.
總結(jié)
以上是生活随笔為你收集整理的java postgresql json_java – 将PostgreSQL JSON列映射到Hibernate值类...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乌梅多少钱一斤啊?
- 下一篇: java 传递bean_如何将bean作