首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  Java

spring boot 使用 "Phoenix" JdbcTemplate 读取非主键字段的值结果为空

  •  
  •   abcdxx · 5 天前 · 115 次点击

    Phoenix 建表语句

    create table IF NOT EXISTS shop_day (
    face_id varchar not null,
    shop_key integer not null,
    date_key integer not null,
    business_key integer,
    brand_key integer,
    pv integer
    CONSTRAINT pk PRIMARY key (face_id, shop_key, date_key)
    );
    

    spring 配置

     spring   
        phoenix:
          datasource:
            url: jdbc:phoenix:127.0.0.1:2181
            driverclassname: org.apache.phoenix.jdbc.PhoenixDriver
            username:
            password:
    

    spring 代码

    
      @Qualifier("phoenixJdbcTemplate")
      @Autowired
      private JdbcTemplate jdbcPhoenix;
    
      void getFaceShopInfo() {
    
        String sql = "select * from shop_day where face_id in('1234')";
        Map<String, Object> stringObjectMap = jdbcPhoenix.queryForMap(sql);
      }  
    

    #stringObjectMap 只有 face_id, shop_key, date_key 主键字段有数据,其他字段数据都是 null

    在终端查询这条 sql 每个字段都有数据

    
    0: jdbc:phoenix:> select * from shop_day where face_id in('1234');
    

    有大佬知道是什么问题吗.

    4 回复  |  直到 2018-11-12 10:25:35 +08:00
        1
    abcdxx   5 天前
    ???
        2
    szq8014   4 天前   ♥ 1
    其他列是什么类型的?试试原生的 PreparedStatement/RestulSet ?
    再就是 in 查询一般返回多行为啥用 map 接,怎么也得上个 list 吧?
        3
    thinkmore   2 天前   ♥ 1
    把你的 sql 语句拿到 phoenix client 中执行以下看看呢?或者在试一试指定返回字段看看
        4
    thinkmore   2 天前   ♥ 1
    在确认下你 hbase 中表是否建好了,然后是不是有对应的列
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1772 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 27ms · UTC 16:14 · PVG 00:14 · LAX 08:14 · JFK 11:14
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1