{"id":3921,"date":"2024-08-16T16:55:43","date_gmt":"2024-08-16T08:55:43","guid":{"rendered":"https:\/\/qaqaq.top\/?p=3921"},"modified":"2024-08-20T10:32:13","modified_gmt":"2024-08-20T02:32:13","slug":"mybatisplus%e6%9d%a1%e4%bb%b6%e6%9e%84%e9%80%a0%e5%99%a8","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=3921","title":{"rendered":"MyBatis-Plus\u6761\u4ef6\u6784\u9020\u5668"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u6761\u4ef6\u6784\u9020\u5668<\/h2>\n\n\n\n<p>MyBatis-Plus \u63d0\u4f9b\u4e86\u4e00\u5957\u5f3a\u5927\u7684\u6761\u4ef6\u6784\u9020\u5668\uff08Wrapper\uff09\uff0c\u7528\u4e8e\u6784\u5efa\u590d\u6742\u7684\u6570\u636e\u5e93\u67e5\u8be2\u6761\u4ef6\u3002Wrapper \u7c7b\u5141\u8bb8\u5f00\u53d1\u8005\u4ee5\u94fe\u5f0f\u8c03\u7528\u7684\u65b9\u5f0f\u6784\u9020\u67e5\u8be2\u6761\u4ef6\uff0c\u65e0\u9700\u7f16\u5199\u7e41\u7410\u7684 SQL \u8bed\u53e5\uff0c\u4ece\u800c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u5e76\u51cf\u5c11 SQL \u6ce8\u5165\u7684\u98ce\u9669\u3002<\/p>\n\n\n\n<p>\u5728 MyBatis-Plus \u4e2d\uff0cWrapper \u7c7b\u662f\u6784\u5efa\u67e5\u8be2\u548c\u66f4\u65b0\u6761\u4ef6\u7684\u6838\u5fc3\u5de5\u5177\u3002\u4ee5\u4e0b\u662f\u4e3b\u8981\u7684 Wrapper \u7c7b\u53ca\u5176\u529f\u80fd\uff1a<\/p>\n\n\n\n<p><strong>AbstractWrapper<\/strong>\uff1a\u8fd9\u662f\u4e00\u4e2a\u62bd\u8c61\u57fa\u7c7b\uff0c\u63d0\u4f9b\u4e86\u6240\u6709 Wrapper \u7c7b\u5171\u6709\u7684\u65b9\u6cd5\u548c\u5c5e\u6027\u3002\u5b83\u5b9a\u4e49\u4e86\u6761\u4ef6\u6784\u9020\u7684\u57fa\u672c\u903b\u8f91\uff0c\u5305\u62ec\u5b57\u6bb5\uff08column\uff09\u3001\u503c\uff08value\uff09\u3001\u64cd\u4f5c\u7b26\uff08condition\uff09\u7b49\u3002\u6240\u6709\u7684 QueryWrapper\u3001UpdateWrapper\u3001LambdaQueryWrapper \u548c LambdaUpdateWrapper \u90fd\u7ee7\u627f\u81ea AbstractWrapper\u3002<\/p>\n\n\n\n<p><strong>QueryWrapper<\/strong>\uff1a\u4e13\u95e8\u7528\u4e8e\u6784\u9020\u67e5\u8be2\u6761\u4ef6\uff0c\u652f\u6301\u57fa\u672c\u7684\u7b49\u4e8e\u3001\u4e0d\u7b49\u4e8e\u3001\u5927\u4e8e\u3001\u5c0f\u4e8e\u7b49\u5404\u79cd\u5e38\u89c1\u64cd\u4f5c\u3002\u5b83\u5141\u8bb8\u4f60\u4ee5\u94fe\u5f0f\u8c03\u7528\u7684\u65b9\u5f0f\u6dfb\u52a0\u591a\u4e2a\u67e5\u8be2\u6761\u4ef6\uff0c\u5e76\u4e14\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528&nbsp;<code>and<\/code>&nbsp;\u548c&nbsp;<code>or<\/code>&nbsp;\u903b\u8f91\u3002<\/p>\n\n\n\n<p><strong>UpdateWrapper<\/strong>\uff1a\u7528\u4e8e\u6784\u9020\u66f4\u65b0\u6761\u4ef6\uff0c\u53ef\u4ee5\u5728\u66f4\u65b0\u6570\u636e\u65f6\u6307\u5b9a\u6761\u4ef6\u3002\u4e0e QueryWrapper \u7c7b\u4f3c\uff0c\u5b83\u4e5f\u652f\u6301\u94fe\u5f0f\u8c03\u7528\u548c\u903b\u8f91\u7ec4\u5408\u3002\u4f7f\u7528 UpdateWrapper \u53ef\u4ee5\u5728\u4e0d\u521b\u5efa\u5b9e\u4f53\u5bf9\u8c61\u7684\u60c5\u51b5\u4e0b\uff0c\u76f4\u63a5\u8bbe\u7f6e\u66f4\u65b0\u5b57\u6bb5\u548c\u6761\u4ef6\u3002<\/p>\n\n\n\n<p><strong>LambdaQueryWrapper<\/strong>\uff1a\u8fd9\u662f\u4e00\u4e2a\u57fa\u4e8e Lambda \u8868\u8fbe\u5f0f\u7684\u67e5\u8be2\u6761\u4ef6\u6784\u9020\u5668\uff0c\u5b83\u901a\u8fc7 Lambda \u8868\u8fbe\u5f0f\u6765\u5f15\u7528\u5b9e\u4f53\u7c7b\u7684\u5c5e\u6027\uff0c\u4ece\u800c\u907f\u514d\u4e86\u786c\u7f16\u7801\u5b57\u6bb5\u540d\u3002\u8fd9\u79cd\u65b9\u5f0f\u63d0\u9ad8\u4e86\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\uff0c\u5c24\u5176\u662f\u5728\u5b57\u6bb5\u540d\u53ef\u80fd\u53d1\u751f\u53d8\u5316\u7684\u60c5\u51b5\u4e0b\u3002<\/p>\n\n\n\n<p><strong>LambdaUpdateWrapper<\/strong>\uff1a\u7c7b\u4f3c\u4e8e LambdaQueryWrapper\uff0cLambdaUpdateWrapper \u662f\u57fa\u4e8e Lambda \u8868\u8fbe\u5f0f\u7684\u66f4\u65b0\u6761\u4ef6\u6784\u9020\u5668\u3002\u5b83\u5141\u8bb8\u4f60\u4f7f\u7528 Lambda \u8868\u8fbe\u5f0f\u6765\u6307\u5b9a\u66f4\u65b0\u5b57\u6bb5\u548c\u6761\u4ef6\uff0c\u540c\u6837\u907f\u514d\u4e86\u786c\u7f16\u7801\u5b57\u6bb5\u540d\u7684\u95ee\u9898\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5168\u90e8\u7684Wrapper \u7c7b<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2024\/08\/image-70.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"278\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2024\/08\/image-70.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-3925\"  sizes=\"(max-width: 746px) 100vw, 746px\" \/><\/div><\/figure>\n\n\n\n<p>Wrapper \uff1a \u6761\u4ef6\u6784\u9020\u62bd\u8c61\u7c7b\uff0c\u6700\u9876\u7aef\u7236\u7c7b<br>AbstractWrapper \uff1a \u7528\u4e8e\u67e5\u8be2\u6761\u4ef6\u5c01\u88c5\uff0c\u751f\u6210 sql \u7684 where \u6761\u4ef6<br>QueryWrapper \uff1a \u67e5\u8be2\u6761\u4ef6\u5c01\u88c5<br>UpdateWrapper \uff1a Update \u6761\u4ef6\u5c01\u88c5<br>AbstractLambdaWrapper \uff1a \u4f7f\u7528Lambda \u8bed\u6cd5<br>LambdaQueryWrapper \uff1a\u7528\u4e8eLambda\u8bed\u6cd5\u4f7f\u7528\u7684\u67e5\u8be2Wrapper<br>LambdaUpdateWrapper \uff1a Lambda \u66f4\u65b0\u5c01\u88c5Wrapper<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u88c5\u67e5\u8be2\u6761\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u7ec4\u88c5\u67e5\u8be2\u6761\u4ef6\n    @Test\n    public void test01() {\n        \/\/\u67e5\u8be2\u7528\u6237\u540d\u5305\u542ba\uff0c\u5e74\u9f84\u572820\u523030\u4e4b\u95f4\uff0c\u90ae\u7bb1\u4fe1\u606f\u4e0d\u4e3anull\u7684\u7528\u6237\u4fe1\u606f\n        \/\/SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (user_name LIKE ? AND age BETWEEN ? AND ? AND email IS NOT NULL)\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.like(\"user_name\", \"a\")\n                        .between(\"age\", 20, 30)\n                                .isNotNull(\"email\");\n        List&lt;User&gt; list = userMapper.selectList(queryWrapper);\n        list.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u88c5\u6392\u5e8f\u6761\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u7ec4\u88c5\u6392\u5e8f\u6761\u4ef6\n    @Test\n    public void test02() {\n        \/\/\u67e5\u8be2\u7528\u6237\u4fe1\u606f\uff0c\u6309\u7167\u5e74\u9f84\u7684\u964d\u5e8f\u6392\u5e8f\uff0c\u82e5\u5e74\u9f84\u76f8\u540c\uff0c\u5219\u6309\u7167id\u5347\u5e8f\u6392\u5e8f\n        \/\/SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 ORDER BY age DESC,uid ASC\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.orderByDesc(\"age\")\n                        .orderByAsc(\"uid\");\n        List&lt;User&gt; list = userMapper.selectList(queryWrapper);\n        list.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u88c5\u5220\u9664\u6761\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u7ec4\u88c5\u5220\u9664\u6761\u4ef6\n    @Test\n    public void test03() {\n        \/\/\u5220\u9664\u90ae\u7bb1\u5730\u5740\u4e3anull\u7684\u7528\u6237\u4fe1\u606f\n        \/\/UPDATE t_user SET is_deleted=1 WHERE is_deleted=0 AND (email IS NULL)\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.isNull(\"email\");\n        int result = userMapper.delete(queryWrapper);\n        System.out.println(\"result:\" + result);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528QueryWrapper\u5b9e\u73b0\u4fee\u6539\u529f\u80fd<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u4f7f\u7528QueryWrapper\u5b9e\u73b0\u4fee\u6539\u529f\u80fd\n    @Test\n    public void test04() {\n        \/\/\u5c06\uff08\u5e74\u9f84\u5927\u4e8e20\u5e76\u4e14\u7528\u6237\u540d\u4e2d\u5305\u542b\u6709a\uff09\u6216\u90ae\u7bb1\u4e3anull\u7684\u7528\u6237\u4fe1\u606f\u4fee\u6539\n        \/\/UPDATE t_user SET user_name=?, email=? WHERE is_deleted=0 AND (age &gt; ? AND user_name LIKE ? OR email IS NULL)\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.gt(\"age\", 20)\n                        .like(\"user_name\", \"a\")\n                                .or()\n                                        .isNull(\"email\");\n        User user = new User();\n        user.setName(\"\u5c0f\u660e\");\n        user.setEmail(\"test@qaqaq.top\");\n        int result = userMapper.update(user, queryWrapper);\n        System.out.println(\"result:\" + result);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u6761\u4ef6\u7684\u4f18\u5148\u7ea7<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u6761\u4ef6\u7684\u4f18\u5148\u7ea7\n    @Test\n    public void test05() {\n        \/\/\u5c06\u7528\u6237\u540d\u4e2d\u5305\u542b\u6709a\u5e76\u4e14\uff08\u5e74\u9f84\u5927\u4e8e20\u6216\u90ae\u7bb1\u4e3anull\uff09\u7684\u7528\u6237\u4fe1\u606f\u4fee\u6539\n        \/\/lambda\u4e2d\u7684\u6761\u4ef6\u4f18\u5148\u6267\u884c\n        \/\/UPDATE t_user SET user_name=?, email=? WHERE is_deleted=0 AND (user_name LIKE ? AND (age &gt; ? OR email IS NULL))\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.like(\"user_name\", \"a\")\n                .and(i -&gt; i.gt(\"age\", 20).or().isNull(\"email\"));\n        User user = new User();\n        user.setName(\"\u5c0f\u7ea2\");\n        user.setEmail(\"test@qaqaq.top\");\n        int result = userMapper.update(user, queryWrapper);\n        System.out.println(\"result:\" + result);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u88c5select\u5b50\u53e5<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u7ec4\u88c5select\u5b50\u53e5\n    @Test\n    public void test06() {\n        \/\/\u67e5\u8be2\u7528\u6237\u7684\u7528\u6237\u540d\u3001\u5e74\u9f84\u3001\u90ae\u7bb1\u4fe1\u606f\n        \/\/SELECT user_name,age,email FROM t_user WHERE is_deleted=0\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.select(\"user_name\", \"age\", \"email\");\n        List&lt;Map&lt;String, Object&gt;&gt; maps = userMapper.selectMaps(queryWrapper);\n        maps.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u88c5\u5b50\u67e5\u8be2<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u7ec4\u88c5\u5b50\u67e5\u8be2\n    @Test\n    public void test07() {\n        \/\/\u67e5\u8be2id\u5c0f\u4e8e\u7b49\u4e8e100\u7684\u7528\u6237\u4fe1\u606f\n        \/\/SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (uid IN (select uid from t_user where uid &lt;= 100))\n        QueryWrapper&lt;User&gt; queryWrapper = new QueryWrapper&lt;&gt;();\n        queryWrapper.inSql(\"uid\", \"select uid from t_user where uid &lt;= 100\");\n        List&lt;User&gt; list = userMapper.selectList(queryWrapper);\n        list.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528UpdateWrapper\u5b9e\u73b0\u4fee\u6539\u529f\u80fd<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u4f7f\u7528UpdateWrapper\u5b9e\u73b0\u4fee\u6539\u529f\u80fd\n    @Test\n    public void test08() {\n        \/\/\u5c06\u7528\u6237\u540d\u4e2d\u5305\u542b\u6709a\u5e76\u4e14\uff08\u5e74\u9f84\u5927\u4e8e20\u6216\u90ae\u7bb1\u4e3anull\uff09\u7684\u7528\u6237\u4fe1\u606f\u4fee\u6539\n        \/\/UPDATE t_user SET user_name=?,email=? WHERE is_deleted=0 AND (user_name LIKE ? AND (age &gt; ? OR email IS NULL))\n        UpdateWrapper&lt;User&gt; updateWrapper = new UpdateWrapper&lt;&gt;();\n        updateWrapper.like(\"user_name\", \"a\")\n                .and(i -&gt; i.gt(\"age\", 20).or().isNull(\"email\"));\n        updateWrapper.set(\"user_name\", \"\u5c0f\u9ed1\").set(\"email\", \"abc@qaqaq.top\");\n        int result = userMapper.update(null, updateWrapper);\n        System.out.println(\"result:\" + result);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u6a21\u62df\u5f00\u53d1\u4e2d\u7ec4\u88c5\u6761\u4ef6\u7684\u60c5\u51b5<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u6a21\u62df\u5f00\u53d1\u4e2d\u7ec4\u88c5\u6761\u4ef6\u7684\u60c5\u51b5\n    @Test\n    public void test09() {\n        \/\/SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (user_name LIKE ? AND age &lt;= ?)\n        String username = \"a\";\n        Integer ageBegin = null;\n        Integer ageEnd = 30;\n        QueryWrapper&lt;User> queryWrapper = new QueryWrapper&lt;>();\n        if (StringUtils.isNotBlank(username)) {\n            \/\/isNotBlank\u5224\u65ad\u67d0\u4e2a\u5b57\u7b26\u4e32\u662f\u5426\u4e0d\u4e3a\u7a7a\u5b57\u7b26\u4e32\uff0c\u4e0d\u4e3anull\uff0c\u4e0d\u4e3a\u7a7a\u767d\u7b26\n            queryWrapper.like(\"user_name\", username);\n        }\n        if (ageBegin != null) {\n            queryWrapper.ge(\"age\", ageBegin);\n        }\n        if (ageEnd != null) {\n            queryWrapper.le(\"age\", ageEnd);\n        }\n        List&lt;User> list = userMapper.selectList(queryWrapper);\n        list.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528condition\u7ec4\u88c5\u6761\u4ef6<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/\u4f7f\u7528condition\u7ec4\u88c5\u6761\u4ef6\n    @Test\n    public void test10() {\n        String username = \"a\";\n        Integer ageBegin = null;\n        Integer ageEnd = 30;\n        QueryWrapper&lt;User> queryWrapper = new QueryWrapper&lt;>();\n        queryWrapper.like(StringUtils.isNotBlank(username), \"user_name\", username)\n                .ge(ageBegin != null, \"age\", ageBegin)\n                .le(ageEnd != null, \"age\", ageEnd);\n        List&lt;User> list = userMapper.selectList(queryWrapper);\n        list.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">LambdaQueryWrapper<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/LambdaQueryWrapper\n    @Test\n    public void test11() {\n        \/\/SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 AND (user_name LIKE ? AND age &lt;= ?)\n        String username = \"a\";\n        Integer ageBegin = null;\n        Integer ageEnd = 30;\n        LambdaQueryWrapper&lt;User> queryWrapper = new LambdaQueryWrapper&lt;>();\n        queryWrapper.like(StringUtils.isNotBlank(username), User::getName, username)\n                .ge(ageBegin != null, User::getAge, ageBegin)\n                .le(ageEnd != null, User::getAge, ageEnd);\n        List&lt;User> list = userMapper.selectList(queryWrapper);\n        list.forEach(System.out::println);\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">LambdaUpdateWrapper<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/\/LambdaUpdateWrapper\n    @Test\n    public void test12() {\n        \/\/\u5c06\u7528\u6237\u540d\u4e2d\u5305\u542b\u6709a\u5e76\u4e14\uff08\u5e74\u9f84\u5927\u4e8e20\u6216\u90ae\u7bb1\u4e3anull\uff09\u7684\u7528\u6237\u4fe1\u606f\u4fee\u6539\n        \/\/UPDATE t_user SET user_name=?,email=? WHERE is_deleted=0 AND (user_name LIKE ? AND (age > ? OR email IS NULL))\n        LambdaUpdateWrapper&lt;User> updateWrapper = new LambdaUpdateWrapper&lt;>();\n        updateWrapper.like(User::getName, \"a\")\n                .and(i -> i.gt(User::getAge, 20).or().isNull(User::getEmail));\n        updateWrapper.set(User::getName, \"\u5c0f\u9ed1\").set(User::getEmail, \"abc@qaqaq.top\");\n        int result = userMapper.update(null, updateWrapper);\n        System.out.println(\"result:\" + result);\n    }<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6761\u4ef6\u6784\u9020\u5668 MyBatis-Plus \u63d0\u4f9b\u4e86\u4e00\u5957\u5f3a\u5927\u7684\u6761\u4ef6\u6784\u9020\u5668\uff08Wrapper\uff09\uff0c\u7528\u4e8e\u6784\u5efa\u590d\u6742\u7684\u6570\u636e\u5e93\u67e5\u8be2\u6761 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[165],"tags":[183],"class_list":["post-3921","post","type-post","status-publish","format-standard","hentry","category-mybatisplus-","tag-mybatisplus"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/3921"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3921"}],"version-history":[{"count":7,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/3921\/revisions"}],"predecessor-version":[{"id":4017,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/3921\/revisions\/4017"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}