有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:(dberror)268列定义不明确:ROLLNO:第1行第7列(位置7)

我正在尝试使用多个表(基本上是两个表)在SAP HANA中创建一个视图,其中rollNo是两个表中的主键列,但出现以下错误:

Error: (dberror) 268 - column ambiguously defined: ROLLNO: line 1 col 7 (at pos 7)

我曾尝试使用SQL中的连接概念创建此视图。 以下是DAO类中的方法:

public Response CreatingMultiTableViews()
{
    try
    {
        session=sessionFactory.openSession();
        tx=session.beginTransaction();
        SQLQuery query=session.createSQLQuery(" create VIEW ABCD As Select rollNo,name,english From ClassOne  JOIN ClassTwo ON ClassOne.rollNo= ClassTwo.rollNo");
        query.executeUpdate();
        response.setStatus("200");
        response.setMessage("successfull");
        tx.commit();
        return response;
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage());
        response.setStatus("500");
        response.setMessage("unsuccessfull");
        tx.rollback();
        return response;
    }
    finally
    {
        session.close();
    }
}

这是控制器类中的方法调用。 它将调用负责执行联接和创建相应视图的方法

@RequestMapping(value="/multiView",method=RequestMethod.GET,produces="application/json",consumes="application/json")
public Response CreatingMultiTableViews()
{
    return service.CreatingMultiTableViews();
}

该方法应该连接rollNo列上的两个表,但它显示了上述错误rollNo列是我正在应用连接操作的两个表的主键


共 (1) 个答案

  1. # 1 楼答案

    在sql中使用表别名,并使用它们来说明要在SELECT中使用哪一列rollNo

    create VIEW ABCD As 
    Select c1.rollNo, name, english 
    From ClassOne c1  
    JOIN ClassTwo c2 ON c1.rollNo = c2.rollNo