小编Spr*_*ser的帖子

postgresql:未实现跨数据库引用:

我正在尝试将SQL内部联接查询转换为PostgreSQL内部联接查询。在此内部联接查询中,正在使用哪些表,即所有表都不在一个数据库中。我们将表分为两个数据库,即应用程序数据库和安全性数据库

  1. 用户和权限表位于安全数据库中
  2. userrolemapping和部门存在于应用程序数据库中

我尝试如下所示,但出现以下错误

错误

ERROR:  cross-database references are not implemented: "Rockefeller_ApplicationDb.public.userrolemapping"
LINE 4:         INNER JOIN "Rockefeller_ApplicationDb".public.userro..
Run Code Online (Sandbox Code Playgroud)

SQL存储功能

SELECT   Department.nDeptID 
    FROM Users INNER JOIN Permission 
         ON Users.nUserID = Permission.nUserID INNER JOIN UserRoleMapping
         ON Users.nUserID = UserRoleMapping.nUserID INNER JOIN Department
         ON Permission.nDeptInst = Department.nInstID
         AND  Department.nInstID = 60
    WHERE     
         Users.nUserID = 3;
Run Code Online (Sandbox Code Playgroud)

PostgreSQL存储函数

SELECT dep.ndept_id 
        FROM "Rockefeller_SecurityDb".public.users as  u 
        INNER JOIN  "Rockefeller_SecurityDb".public.permissions p ON u.nuser_id = p.nuser_id
        INNER JOIN "Rockefeller_ApplicationDb".public.userrolemapping as urm ON u.nuser_id = urm.nuser_id
        INNER JOIN "Rockefeller_ApplicationDb".public.department dep ON …
Run Code Online (Sandbox Code Playgroud)

postgresql inner-join

14
推荐指数
2
解决办法
2万
查看次数

是否可以将 Spring Boot 与 TestNG 一起使用?

大多数测试 Spring Boot 的示例和文档都使用 JUnit。

是否有使用 TestNG 测试 Spring Boot 的官方示例?

testng spring-boot

7
推荐指数
1
解决办法
8692
查看次数

@ExceptionHandler(Exception.class)不处理所有类型的异常

我正在尝试使用处理所有类型的异常 @ExceptionHandler(Exception.class)。但这并不能处理所有类型的异常。

当我尝试从邮递员/浏览器访问错误的HTTP方法时,没有收到任何响应空白页。

能否请任何人告诉我为什么我没有得到任何答复,或者告诉我我在代码中做错了什么?

    @Order(Ordered.HIGHEST_PRECEDENCE)
    @ControllerAdvice
    public class RestExceptionHandler extends ResponseEntityExceptionHandler {


        @ExceptionHandler(Exception.class)
        public ResponseEntity<ExceptionMessage> handleAllExceptionMethod(Exception ex,WebRequest requset,HttpServletResponse res) {


            ExceptionMessage exceptionMessageObj = new ExceptionMessage();

            exceptionMessageObj.setStatus(res.getStatus());
            exceptionMessageObj.setError(ex.getLocalizedMessage());     
            exceptionMessageObj.setException(ex.getClass().getCanonicalName());
            exceptionMessageObj.setPath(((ServletWebRequest) requset).getRequest().getServletPath());  

            return new ResponseEntity<ExceptionMessage>(exceptionMessageObj, new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR);          
        } 
Run Code Online (Sandbox Code Playgroud)

java spring exception-handling spring-boot

7
推荐指数
1
解决办法
1074
查看次数

如何在 Querydsl 中创建子查询

我是 Querydsl 的新手。我必须将以下查询转换为 Querydsl。我尝试如下,但没有得到结果。

任何人都可以告诉我我缺少什么或在查询中做错了什么吗?

select * from room  as room 
      where room.nroom_id not in(
                          select rdm.nroom_id from roomdepartmentmapping as rdm)
Run Code Online (Sandbox Code Playgroud)

我试过这样

    JPAQuery<Tuple> query = new JPAQuery<Tuple>(em);  

    query.from(room) 
         .where(room.nRoomId.notIn
                         (query.select(roomDepartmentMapping.nRoomId)
                               .from(roomDepartmentMapping)
                         )
               );
Run Code Online (Sandbox Code Playgroud)

安慰

   at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:31) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.core.types.OperationImpl.accept(OperationImpl.java:83) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.core.support.SerializerBase.handle(SerializerBase.java:92) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.jpa.JPQLSerializer.serialize(JPQLSerializer.java:220) ~[querydsl-jpa-4.1.4.jar:na]
        at com.querydsl.jpa.JPQLSerializer.visit(JPQLSerializer.java:358) ~[querydsl-jpa-4.1.4.jar:na]
        at com.querydsl.jpa.JPQLSerializer.visit(JPQLSerializer.java:39) ~[querydsl-jpa-4.1.4.jar:na]
        at com.querydsl.core.types.SubQueryExpressionImpl.accept(SubQueryExpressionImpl.java:57) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.core.support.SerializerBase.handle(SerializerBase.java:92) ~[querydsl-core-4.1.4.jar:na]            
        at com.querydsl.jpa.JPQLSerializer.visitOperation(JPQLSerializer.java:403) ~[querydsl-jpa-4.1.4.jar:na]
        at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:231) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:31) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.core.types.OperationImpl.accept(OperationImpl.java:83) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.core.support.SerializerBase.handle(SerializerBase.java:92) ~[querydsl-core-4.1.4.jar:na]
        at com.querydsl.jpa.JPQLSerializer.serialize(JPQLSerializer.java:220) ~[querydsl-jpa-4.1.4.jar:na]
        at com.querydsl.jpa.JPQLSerializer.visit(JPQLSerializer.java:358) ~[querydsl-jpa-4.1.4.jar:na]
        at …
Run Code Online (Sandbox Code Playgroud)

querydsl notin

3
推荐指数
1
解决办法
6727
查看次数

如何将 CAST 函数与 JPQL 查询结合使用

我正在尝试在查询中使用CAST函数JPQL将数据类型从整数转换为字符串。但我正在得到QuerySyntaxException

JPQL查询

@Query("select a from Alerts as a "
        + "Inner Join RoomTransfer as rt ON  a.salertActionData= cast (rt.nTransId character varying)" 
        + " where a.nalertId=?1")
public List<Alerts> transferedDetailsByAlertId(Integer nalert_id );
Run Code Online (Sandbox Code Playgroud)

错误

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found 'varying' near line 1
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么吗?

postgresql casting jpql

3
推荐指数
1
解决办法
1万
查看次数

如何为不同类型的异常设置不同的状态码

我正在尝试使用 来处理 spring boot 应用程序中的异常@ControllerAdvice。我不想为每种类型的异常使用单独的方法。我想仅使用主类的一种方法来处理所有类型的异常@ExceptionHandler(Exception.class)

我尝试像下面这样正确处理异常,但问题是我还想为不同类型的异常设置不同类型的状态代码。

在这里我得到了500每种类型的异常。

谁能告诉我如何为不同类型的异常设置不同的状态代码?

    @ControllerAdvice
    public class RestExceptionHandler {

        @ExceptionHandler(Exception.class)
        public  ResponseEntity<Object>  handleAllExceptionMethod(Exception ex,WebRequest requset) {

            ExceptionMessage exceptionMessageObj = new ExceptionMessage();                                   

            exceptionMessageObj.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
            exceptionMessageObj.setMessage(ex.getLocalizedMessage());
            exceptionMessageObj.setError(ex.getClass().getCanonicalName());     
            exceptionMessageObj.setPath(((ServletWebRequest) requset).getRequest().getServletPath());

            return new ResponseEntity<>(exceptionMessageObj, new HttpHeaders(),HttpStatus.INTERNAL_SERVER_ERROR);       
        }
    }
Run Code Online (Sandbox Code Playgroud)

java spring exception spring-boot

2
推荐指数
1
解决办法
4809
查看次数

想要但未调用:但与此模拟的交互为零

我正在学习junit使用 Spring Boot 进行测试,我正在尝试为课堂编写测试用例AccountController。帐户控制器依赖于帐户服务。我用的 mockito是那个。但我收到错误,因为与模拟的交互为零

账户控制器

@GetMapping("/findAccountData")
    public ResponseEntity<List<Tuple>> populateGridViews(@RequestParam(value="sClientAcctId",required=false) String sClientAcctId,
                                                         @RequestParam(value="sAcctDesc",required=false) String sAcctDesc,
                                                         @RequestParam(value="sInvestigatorName",required=false)String sInvestigatorName,
                                                         @RequestParam(value="sClientDeptId",required=false) String sClientDeptId) throws Exception {
        return  ResponseEntity.ok(accService.populateGridViews(sClientAcctId, sAcctDesc,sInvestigatorName,sClientDeptId));
    }
Run Code Online (Sandbox Code Playgroud)

账户服务

public List<Tuple> populateGridViews(String sClientAcctId, String sAcctDesc, String sInvestigatorName,
        String sClientDeptId)throws Exception{

    QAccount account = QAccount.account;
    QDepartment department = QDepartment.department;
    QAccountCPCMapping accountCPCMapping = QAccountCPCMapping.accountCPCMapping;
    QInvestigator investigator = QInvestigator.investigator;

    JPAQuery<Tuple> query = new JPAQuery<Tuple>(em);
    query.select(Projections.bean(Account.class, account.sClientAcctId, account.sAcctDesc, account.sLocation,
            Projections.bean(Department.class, department.sDeptName, department.sClientDeptId).as("department"),
            Projections.bean(Investigator.class, investigator.sInvestigatorName).as("investigator"),
            Projections.bean(AccountCPCMapping.class, accountCPCMapping.sCCPCode).as("accountCPC"))).from(account)
            .innerJoin(account.department, department).innerJoin(account.accountCPC, accountCPCMapping)
            .innerJoin(account.investigator, …
Run Code Online (Sandbox Code Playgroud)

junit4 mockito querydsl spring-data-jpa

1
推荐指数
1
解决办法
7522
查看次数