我正在使用 Spring Boot 2.1 + Hibernate 5.x + Postgres 11.x 我的数据库连接字符串:-
url: jdbc:postgresql://localhost:5432/mydatabase?currentSchema=dbo
Postgres 数据库具有混合大小写的表名和列名。我有如下的休眠类(其中所有表和列名称均为小写):-
@Entity
@Table(name = "products")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Products implements Serializable {
...
@Size(max = 80)
@Column(name = "barcode", length = 80)
private String barcode;
@NotNull
@Size(max = 80)
@Column(name = "name", length = 80, nullable = false)
private String name;
@Column(name = "hidden")
private Boolean hidden = false;
.....
}
Run Code Online (Sandbox Code Playgroud)
数据库表具有如下所示的列(混合大小写):-
当我使用 JPA 存储库方法选择所有数据时,hibernate 将生成以下查询。
select products0_.id as id1_140_, products0_.barcode as barcode2_140_,
products0_.creation_time …Run Code Online (Sandbox Code Playgroud) 我正在C# multi threading申请并使用MySQL单一连接到整个应用程序.但是当两个或多个线程同时尝试访问数据库时,我得到以下错误:
已经有一个
DataReader与此相关的开放Connection,必须先关闭.
我的连接代码如下
public static _connectionSetup = new MySqlConnection("Server=server ; Database=database;User ID=user;Password=pass;Pooling=true;");
Run Code Online (Sandbox Code Playgroud)
当我需要使用连接我使用下面的代码: -
using (MySqlConnection connection =_connectionSetup )
{
using (MySqlCommand command = new MySqlCommand("proc", connection))
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用pooling=true,我已经为两个不同的线程创建了两个独立的连接,但我仍然遇到上述错误.
我错过了什么吗?
如何实现连接池以便所有线程都使用单独的连接并且不会导致任何问题?
我在 Elastic 中有如下数据
{
"_index": "prod",
"_type": "log",
"_id": "aa",
"_source": {
"input_type": "log",
"sourcetype": "sourcetypeapp1",
"message": "APP COMPANY|80d596f6-2082-4a1d-bcfc-740478f626ec|001 ErrorMessage: Some error"
"type": "log",
"tags": [
"beats_input_codec_plain_applied"
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想搜索消息中包含以下数据的所有消息:-
(Message : "COMPANY|80d596f6-2082-4a1d-bcfc-740478f626eA|001" AND Message:"ErrorMessage")
Or
(Message : "COMPANY|80d596f6-2082-4a1d-bcfc-740478f626eB|002" AND Message:"ErrorMessage")
Or
(Message : "COMPANY|80d596f6-2082-4a1d-bcfc-740478f626eC|003" AND Message:"ErrorMessage")
Run Code Online (Sandbox Code Playgroud)
我对elasticsearch查询不太了解,
我尝试过下面的简单查询,它不起作用(只有一个条件):
{
"query": {
"bool": {
"must": {
"bool": {
"should": [
{
"match": {
"Message": "COMPANY|80d596f6-2082-4a1d-bcfc-740478f626eA|001"
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我是新手C# Task和线程.
我有一个如下代码: -
public void UpdateSales(object sender, EventArgs args)
{
Task.Run(() =>
{
// Some code Create Collection ...
// Some code with business logic ..
// Below code is to update UI
// is it safe to update UI like below
saleDataGrid.Dispatcher.Invoke((Action) (() =>
{
saleDataGrid.ItemsSource = currentCollection;
saleDataGrid.Items.Refresh();
}));
});
}
Run Code Online (Sandbox Code Playgroud)
我不确定这段代码是否正确.我认为无论如何都会出现死锁?
你能指出我如何从Task更新UI?我没有使用async/await 因为UpdateSales是来自第三方库的事件处理程序.
我正在尝试 spring 规范中的 sum 函数,如下所示:
@Override
public Predicate toPredicate(Root<Stock> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
Path expression = root.get("qty");
query.select(builder.sum(expression));
return null;
}
Run Code Online (Sandbox Code Playgroud)
我要执行的查询是:
SELECT SUM(o.qty) FROM Stock o;
Run Code Online (Sandbox Code Playgroud)
但是 Spring 并没有创建 sum 函数,而是在执行以下操作:
SELECT o.qty FROM Stock o
Run Code Online (Sandbox Code Playgroud)
我查了那么多的堆栈溢出的问题,但在规范的方式没有回答,大多数人使用JPQL的@Query注释本。但是我进一步的查询和设计非常复杂,所以我只能使用规范。因为我需要完全动态查询。