有没有人知道如何重写以下SQL查询来生成结果,那将只包含一次出现的名称?(按用户分组的结果).
查询
SELECT array_to_string(array_agg(CONCAT(u.firstname, ' ', u.lastname)), ', ')
FROM log_has_item logitem
INNER JOIN log log ON log.id = logitem.log_id
INNER JOIN worker u ON log.worker_id = u.id
WHERE logitem.company_id = 1
Run Code Online (Sandbox Code Playgroud)
可执行查询可在sqlfiddle.com上获得.单击Run SQL按钮,结果将包含两次Frantisek Smith
使用Hibernate创建持久超级对象的子对象的适当方法是什么?
请考虑以下示例:在数据库中持久保存UserID 1,firstName Kevin和laseName Smith.到时候是Auditor作为子类的新实体的数据库模型扩展了User.对于继承是使用策略JOINED,因此数据库模型现在有两个表:用户和审计员.这些表使用user_id FK连接.
我想创建Kevin Smith对象类型的Auditor并坚持下去.问题是操作是事务性的,而Hibernate会抛出NonUniqueObjectException.以任何方式存在如何安全地转换持久化对象做子对象?我试图驱逐给定的User对象,但仍然是相同的.
用户实体
@Entity
@Table(name = "user")
@Inheritance(strategy = InheritanceType.JOINED)
public class User{
private Long id;
private String firstName;
private String lastName;
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
审计实体
@Entity
@Table(name = "auditor")
public class Auditor extends User {
// some properties
}
Run Code Online (Sandbox Code Playgroud)
逻辑
Run Code Online (Sandbox Code Playgroud)public void createAuditorOfUser(final long userId) { final User user = userService.getUserById(userId); // ... final Auditor auditor = …
我试图将特定的Generic bean注入Generic子类型,但Spring无法解析依赖项.通过从bean中删除类型,一切都按预期工作.这是一个例子:
public class AbstractFrom{
// ...
}
public class EmployyForm extends AbstractFrom{
// ...
}
public class CompanyForm extends AbstractFrom{
// ...
}
abstract class AbstractBean<T extends AbstractFrom>{
public abstract void calculate(T form);
}
@Component
public CompanyBean extends AbstractBean<CompanyForm>{
public void calculate(CompanyForm form){
// specific impl
}
}
@Component
public EmployeeBean extends AbstractBean<EmployyForm>{
public void calculate(EmployyForm form){
// specific impl
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个目标类:
@Service
public BaseService{
@Autowire
public AbstractBean<AbstractFrom> baseBean; // <- NoSuchBeanDefinitionException
// @Autowire
// public AbstractBean baseBean; …Run Code Online (Sandbox Code Playgroud) 我在表单提交上遇到Ajax请求问题.表单包含以下stringify JSON数据:
{"articleContent":"<p>aaa</p>","title":"Po vypln?ní titulku aktuality budete","header":"aa","enabled":false,"timestamp":"1358610697521","publishedSince":"03.01.2013 00:00","publishedUntil":"","id":"10"}
Run Code Online (Sandbox Code Playgroud)
当json包含"03.01.2013 00:00"值时,服务器响应为400 Bad Request
问题是,不调用自定义DateTimePropertyEditor(使用@InitBinder注册),并且不传输String格式的DateTime.你有什么想法如何解决这个问题?
控制器映射方法,即处理请求
@RequestMapping( value = "/admin/article/edit/{articleId}", method = RequestMethod.POST, headers = {"content-type=application/json"})
public @ResponseBody JsonResponse processAjaxUpdate(@RequestBody Article article, @PathVariable Long articleId){
JsonResponse response = new JsonResponse();
Article persistedArticle = articleService.getArticleById(articleId);
if(persistedArticle == null){
return response;
}
List<String> errors = articleValidator.validate(article, persistedArticle);
if(errors.size() == 0){
updateArticle(article, persistedArticle);
response.setStatus(JsonStatus.SUCCESS);
response.setResult(persistedArticle.getChanged().getMillis());
}else{
response.setResult(errors);
}
return response;
}
Run Code Online (Sandbox Code Playgroud)
InitBinder
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(DateTime.class, this.dateTimeEditor);
}
Run Code Online (Sandbox Code Playgroud) 我尝试在Excel中创建新函数,将计算给定的值(类似于SUM函数,但只有给定的前缀).
A
---------
1|AA30
2|AA10
3|BC446
4|AA10
// result will be 50 on SUM_PREFIX(A1:A4;"AA")
Run Code Online (Sandbox Code Playgroud)
问题是,当值为例如AA10,434或AA4.43时.我可以帮我解决问题吗?这是我在VB中的第一个stript.
Function SUM_PREFIX(Data As Range, prefix As String) As Double
Dim result As Double
Dim strVal As String
Dim i As Integer
Dim objRegExp As Object
Set objRegExp = CreateObject("vbscript.regexp")
With objRegExp
.IgnoreCase = True
.MultiLine = False
.Pattern = "^[" + prefix + "]+[0-9]+(\,|\.)?[0-9]?$"
.Global = True
End With
For i = 1 To Data.Rows.Count
Debug.Print Data.Cells(i, 1)
If objRegExp.Test(Data.Cells(i, 1)) = True Then
strVal …Run Code Online (Sandbox Code Playgroud)