我想将查询结果分配给 DTO 对象。DTO 看起来像这样:
@Getter
@Setter
@NoArgsConstructor
public class Metric {
private int share;
private int shareholder;
public Metric(int share, int shareholder) {
this.share = share;
this.shareholder = shareholder;
}
}
Run Code Online (Sandbox Code Playgroud)
查询如下所示:
@RepositoryRestResource(collectionResourceRel = "shareholders", path = "shareholders")
public interface ShareholderRepository extends PagingAndSortingRepository<Shareholder, Integer> {
@Query(value = "SELECT new com.company.shareholders.sh.Metric(SUM(s.no_of_shares),COUNT(*)) FROM shareholders s WHERE s.attend=true")
Metric getMetrics();
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为我遇到了以下异常:
Caused by:org.hibernate.QueryException: could not resolve property: no_of_shares of:com.company.shareholders.sh.Shareholder[SELECT new com.company.shareholders.sh.Metric(SUM(s.no_of_shares),COUNT(*)) FROM com.company.shareholders.sh.Shareholder s WHERE s.attend=true]
Run Code Online (Sandbox Code Playgroud) 我一直在使用 smack 客户端库 4.1.8 和 xmpp 服务器(openfire 服务器)开发聊天应用程序,但是在尝试使用 Accountmanger 类创建新用户时,它引发了异常“XMPPError: bad-request - modify”
XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder()
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setHost("127.0.0.1")
.setDebuggerEnabled(true)
.setPort(5222)
.setSendPresence(true)
.setServiceName("127.0.0.1")
.build();
AbstractXMPPConnection conn2 = new XMPPTCPConnection(conf);
//conn2.login();
conn2.connect();
AccountManager accountManager = AccountManager.getInstance(conn2);
if (accountManager.supportsAccountCreation()) {
accountManager.sensitiveOperationOverInsecureConnection(true);
accountManager.createAccount("qidus", "123456");
conn2.login("qidus", "123456");
}
} catch (SmackException | IOException | XMPPException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
例外是这个
04:01:41 AM SENT (0): <iq to='127.0.0.1' id='aYej1-3' type='get'><query xmlns='jabber:iq:register'></query></iq>
Run Code Online (Sandbox Code Playgroud)
04:01:41 AM RECV (0):
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: bad-request - modify
at org.jivesoftware.smack.XMPPException$XMPPErrorException.ifHasErrorThenThrow(XMPPException.java:135)
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:213) …Run Code Online (Sandbox Code Playgroud) 我正在为我的Express应用创建测试。该项目有多个测试文件。在每个模块中,需要在beforeEach()方法中使用服务器实例,并在afterEach()方法中关闭服务器实例。但是在测试了其中一个或两个模块之后,它将提高已经使用的地址,并且玩笑不会终止。
beforeEach(() => {
server = require('./../../../bin/www')});
afterEach(async() => {
server.close();
/**
* database cleanup logic goes here.
*/
});
Run Code Online (Sandbox Code Playgroud)
我想在所有测试套件完成后终止玩笑。