V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
abcdxx
V2EX  ›  Java

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

  •  
  •   abcdxx · Nov 9, 2018 · 2113 views
    This topic created in 2726 days ago, the information mentioned may be changed or developed.

    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 replies    2018-11-12 10:25:35 +08:00
    abcdxx
        1
    abcdxx  
    OP
       Nov 9, 2018
    ???
    szq8014
        2
    szq8014  
       Nov 10, 2018   ❤️ 1
    其他列是什么类型的?试试原生的 PreparedStatement/RestulSet ?
    再就是 in 查询一般返回多行为啥用 map 接,怎么也得上个 list 吧?
    thinkmore
        3
    thinkmore  
       Nov 12, 2018   ❤️ 1
    把你的 sql 语句拿到 phoenix client 中执行以下看看呢?或者在试一试指定返回字段看看
    thinkmore
        4
    thinkmore  
       Nov 12, 2018   ❤️ 1
    在确认下你 hbase 中表是否建好了,然后是不是有对应的列
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6138 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 02:25 · PVG 10:25 · LAX 19:25 · JFK 22:25
    ♥ Do have faith in what you're doing.