我正在尝试将SQL内部联接查询转换为PostgreSQL内部联接查询。在此内部联接查询中,正在使用哪些表,即所有表都不在一个数据库中。我们将表分为两个数据库,即应用程序数据库和安全性数据库
我尝试如下所示,但出现以下错误
错误
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) 大多数测试 Spring Boot 的示例和文档都使用 JUnit。
是否有使用 TestNG 测试 Spring Boot 的官方示例?
我正在尝试使用处理所有类型的异常 @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) 我是 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) 我正在尝试在查询中使用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)
谁能告诉我我做错了什么吗?
我正在尝试使用 来处理 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) 我正在学习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) spring-boot ×3
java ×2
postgresql ×2
querydsl ×2
spring ×2
casting ×1
exception ×1
inner-join ×1
jpql ×1
junit4 ×1
mockito ×1
notin ×1
testng ×1