Я бы рекомендовал проверить пакет sqldf Gabor Grothendieck , который позволяет вам выражать эти операции в SQL.
library(sqldf)
## inner join
df3 <- sqldf("SELECT CustomerId, Product, State
FROM df1
JOIN df2 USING(CustomerID)")
## left join (substitute 'right' for right join)
df4 <- sqldf("SELECT CustomerId, Product, State
FROM df1
LEFT JOIN df2 USING(CustomerID)")
Я нахожу синтаксис SQL более простым и более естественным, чем его эквивалент R (но это может просто отражать смещение RDBMS).
Для получения дополнительной информации о объединениях см. Gabor's sqldf GitHub .
Решение 1: Основной принципал
blockquote>@RequestMapping(value = {"/", ""}) public String start(Principal principal, Model model) { String currentUser = principal.getName(); return currentUser; }
Решение 2: Аутентификация аутентификации
blockquote>@RequestMapping(value = {"/", ""}) public String currentUserName(Authentication authentication) { return authentication.getName(); }
Решение 3: SecurityContextHolder
blockquote>Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof UserDetails) { String username = ((UserDetails)principal).getUsername(); } else { String username = principal.toString(); }