Hier ist mein Code unten für dowork() im nicht in der Lage, Rückgabe zu erhalten Count gibt es eine Möglichkeit, die Rückkehr von dieser Methode und doreturnwork() funktioniert nicht für diese bitte helfen mich im Versuch, es aber es gibt keine Methode, wie doreturnwork helfen bitteWie bekomme ich die Rückgabe von doWork() Methode
sessionFactory.getCurrentSession().doWork(
new Work()
{
public void execute(Connection connection) throws SQLException
{
String contactQueryCounts = "";
String contactQueryIds = "";
int index = 1;
StringBuilder builder = new StringBuilder();
CustomerUser user = (CustomerUser) userService.getLoggedInUser();
String inClause = "";
for (Long id :ids) {
builder.append("?,");
}
if(builder.length()>0){
inClause = builder.substring(0, builder.length()-1);
}
if(inClause.length()>0){
contactQueryCounts= "select count(id) from (select *,@num := if(@company_id = company_id, @num + 1, 1) as row_number," +
"@company_id := company_id as dummy from salebuild_ctl.company_contact where id in ("+inClause+") " +
" order by company_id, date_created asc ) as x where x.row_number <= ?";
contactQueryIds= "select id from (select *,@num := if(@company_id = company_id, @num + 1, 1) as row_number," +
"@company_id := company_id as dummy from salebuild_ctl.company_contact where id in ("+inClause+") " +
" order by company_id, date_created asc ) as x where x.row_number <= ?";
}else{
contactQueryCounts= "select count(id) from (select *,@num := if(@company_id = company_id, @num + 1, 1) as row_number," +
"@company_id := company_id as dummy from salebuild_ctl.company_contact " +
" order by company_id, date_created asc ) as x where x.row_number <= ?";
contactQueryIds= "select id from (select *,@num := if(@company_id = company_id, @num + 1, 1) as row_number," +
"@company_id := company_id as dummy from salebuild_ctl.company_contact " +
" order by company_id, date_created asc ) as x where x.row_number <= ?";
}
java.sql.PreparedStatement sCount;
java.sql.PreparedStatement sIds;
try {
sCount = connection.prepareStatement(contactQueryCounts);
sIds = connection.prepareStatement(contactQueryIds);
for(Long id : ids){
sCount.setLong(index, id);
sIds.setLong(index, id);
index=index+1;
}
sCount.setInt(index,user.getAccount().getCurrentSubscription().getNumberofcontactspercompany());
sIds.setInt(index,user.getAccount().getCurrentSubscription().getNumberofcontactspercompany());
ResultSet rs = sCount.executeQuery();
int c = rs.getInt(1);
String contactLevelCountsQuery="select c.name,count(a.id) from company_contact a left join " +
"title b on a.corporate_title_id=b.id left join title_level c on b.title_level_id=c.id where a.id in" +
" ("+sIds.toString()+") and c.name is not null group by c.name";
java.sql.Statement s = connection.createStatement();
ResultSet rsIds = s.executeQuery(contactLevelCountsQuery);
SearchService.levelToContactCount.clear();
while (rsIds.next()) {
if(rsIds.getString(1) == null){
SearchService.levelToContactCount.put("No Level",rsIds.getInt(2));
}else{
SearchService.levelToContactCount.put(rsIds.getString(1),rsIds.getInt(2));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
);
Gute Erklärung – ronan