我有以下Person通过 Id 返回对象的方法:
private Person getPersonById(String client) {
Person output = null;
EntityManager entityManager = null;
try {
entityManager = entityManagement.createEntityManager(client);
output = entityManager.find(Person.class, id);
} catch (Exception e) {
// handle
} finally {
entityManagement.closeEntityManager(client, entityManager);
}
return output;
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使这个方法更加通用,以便我也可以传递其他对象类型,
Place例如 Cost?请注意,它们不继承相同的超类。
例如,我应该将例如Person.class作为方法参数等传递吗?
我有以下docker compose文件,用于Spring boot container连接到 a 的 a mongoDB container:
#
# APIs
#----------------------------------------------
pokerstats:
image: pokerstats
container_name: pokerstats
ports:
- 8080:8080
depends_on:
- db
#
# Utilities
#----------------------------------------------
db:
image: mongo
container_name: mongo
volumes:
- ./database:/data
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: pokerStats
Run Code Online (Sandbox Code Playgroud)
在我的春季靴子中,application.properties我有:
server.port=8080
spring.main.allow-bean-definition-overriding=true
spring.data.mongodb.uri=mongodb://admin:admin@mongo:27017/pokerStats
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=pokerStats
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 Postman 到达端点时,出现以下错误:
{
"timestamp": "2020-04-07T17:39:19.129+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='admin', source='pokerStats', password=<hidden>, mechanismProperties=<hidden>}; nested …Run Code Online (Sandbox Code Playgroud) mongodb docker spring-boot docker-compose application.properties
我有以下docker-compose.yml文件:
version: "3"
services:
pokerstats:
image: pokerstats
container_name: pokerstats
ports:
- 8080:8080
depends_on:
- db
db:
image: mongo
container_name: mongo
volumes:
- ./database:/data
ports:
- "27018:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: pokerstats
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我运行docker-compose downmongo 数据库中的所有数据都会丢失。
如何创建即使 mongo 容器出现故障也能持续存在的 mongo 卷?
Java POJO我的 Spring Boot 应用程序中有以下内容:
public class Round {
private ObjectId _id;
@NotEmpty
@Getter
@Setter
@Accessors(fluent = true)
@JsonProperty("userId")
private String userId;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
@Getter
@Setter
@Accessors(fluent = true)
@JsonProperty("date")
private LocalDate date;
@Min(value = 1, message = "Score should not be less than 1")
@Getter
@Setter
@Accessors(fluent = true)
@JsonProperty("score")
private int score;
// rest of fields
}
Run Code Online (Sandbox Code Playgroud)
我有以下内容MongoRepository:
@Repository
public interface RoundRepository extends MongoRepository<Round, String> …Run Code Online (Sandbox Code Playgroud) 我的代码中有以下行java,我试图格式化日期字符串
ZonedDateTime zonedDateTime= ZonedDateTime.ofInstant(instant, tz);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm aa");
return zonedDateTime.format(formatter);
Run Code Online (Sandbox Code Playgroud)
在第 2 行,我收到此错误:
java.lang.IllegalArgumentException: Too many pattern letters: a
at java.time.format.DateTimeFormatterBuilder.parseField(DateTimeFormatterBuilder.java:1774)
Run Code Online (Sandbox Code Playgroud)
我如何创建一个格式字符串,DateTimeFormatter.ofPattern例如:
2023-04-21 7.00pm
Run Code Online (Sandbox Code Playgroud) 我有以下docker compose文件,用于启动mongo按预期工作的docker 容器。
但是,我似乎无法从compass本地计算机连接到容器。
我docker inspect在我的 mongo 容器上执行并得到它IP并尝试使用指南针连接,但它没有用 - 连接超时。
它是我的 docker 网络的 IP 还是我需要的 mongo 容器的 IP?
码头工人撰写文件:
version: "3"
services:
pokerStats:
image: pokerStats
container_name: pokerStats
ports:
- 8080:8080
depends_on:
- db
db:
image: mongo
container_name: mongo
volumes:
- ./database:/data
ports:
- "27017:27017"
Run Code Online (Sandbox Code Playgroud) 我有以下docker-compose文件:
version: "3"
services:
#
# APIs
#----------------------------------------------
pokerstats:
image: pokerstats
container_name: pokerstats
ports:
- 8080:8080
depends_on:
- db
#
# Utilities
#----------------------------------------------
db:
image: mongo
container_name: mongo
volumes:
- ./data/db:/data/db
ports:
- "27018:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
MONGO_INITDB_DATABASE: pokerStats
Run Code Online (Sandbox Code Playgroud)
在我添加volumes. 但是当我运行时不是:docker-compose up -dmongo 容器立即停止,在日志中我看到错误:
2020-04-10T19:17:17.313+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1457M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-04-10T19:17:17.772+0000 E STORAGE [initandlisten] WiredTiger error (1) [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, …Run Code Online (Sandbox Code Playgroud) 当我尝试mvn clean install在这个 spring 项目上时,出现以下错误:
[ERROR] Non-resolvable import POM: Could not find artifact io.micrometer:micrometer-bom:pom:2.0.0-M3 in spring-snapshots (https://repo.spring.io/snapshot) @ org.springframework.boot:spring-boot-dependencies:3.0.0-M2, C:\Users\abc
\.m2\repository\org\springframework\boot\spring-boot-dependencies\3.0.0-M2\spring-boot-dependencies-3.0.0-M2.pom, line 2273, column 19
Run Code Online (Sandbox Code Playgroud)
我在我的文件夹中使用这个基本设置文件.m2:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
</mirrors>
<profiles>
</profiles>
</settings>
Run Code Online (Sandbox Code Playgroud)
一些依赖项下载正常(见下文),但似乎micrometer导致了问题。
Downloading from spring-snapshots: https://repo.spring.io/snapshot/org/springframework/session/spring-session-bom/2022.0.0-M1/spring-session-bom-2022.0.0-M1.pom
Downloading from spring-milestones: https://repo.spring.io/milestone/org/springframework/session/spring-session-bom/2022.0.0-M1/spring-session-bom-2022.0.0-M1.pom
Downloaded from spring-milestones: https://repo.spring.io/milestone/org/springframework/session/spring-session-bom/2022.0.0-M1/spring-session-bom-2022.0.0-M1.pom (2.8 kB at 5.2 kB/s)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我有以下嵌套的 for 循环,我想转换为使用流,因为我目前正在学习使用流,我该怎么做?
我在下面添加了我当前的尝试,但目前尚不完整。
Part part = getPart();
List<Machines> machines = new ArrayList<>();
List<String> identities = getMachineIdentities();
Set<MachinePart> machineParts = new HashSet<>();
//create machines
for (String identity : identities) {
Machine machine = getMachine(identity);
machines.add(machine);
}
//map to MachineParts
for (Machine machines : machines) {
MachinePart machinePart = MachinePartCreator.new(machines, part);
machineParts.add(machinePart);
}
Run Code Online (Sandbox Code Playgroud)
流尝试:
Set<MachinePart > machineParts = identities.stream()
.map(identity-> ??? ).collectors.collect(Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud) SQS我正在尝试向我的using添加一条消息Postman。
当我尝试以下操作时Postman:
GET https://sqs.us-east-1.amazonaws.com/205115639995/myQueue.fifo?Action=SendMessage&MessageBody={"message":"test1}
Run Code Online (Sandbox Code Playgroud)
我得到:
<?xml version="1.0"?>
<ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
<Error>
<Type>Sender</Type>
<Code>AccessDenied</Code>
<Message>Access to the resource https://sqs.us-east-1.amazonaws.com/205115639995/myQueue.fifo is denied.</Message>
<Detail/>
</Error>
<RequestId>80ddb4e8-5eff-5143-adf6-e39d5cb46aa2</RequestId>
</ErrorResponse>
Run Code Online (Sandbox Code Playgroud)
我已将其AWS ACCESS and SECRET keys保存在环境变量中,并且它们是正确的。
这里可能有什么问题?我需要将我的添加KEYS到请求中吗?
我目前正在sonarlint本地运行插件,Intelij效果很好。
我只想为更改列表中的文件运行该插件- 在推送它们并创建拉取请求之前。
有没有办法做到这一点?
java ×6
mongodb ×5
docker ×4
spring-boot ×2
amazon-sqs ×1
class ×1
collections ×1
collectors ×1
date-format ×1
for-loop ×1
generics ×1
get ×1
git ×1
http ×1
ip ×1
java-time ×1
maven ×1
micrometer ×1
persistence ×1
postman ×1
predicate ×1
repository ×1
sonarlint ×1
sonarqube ×1
spring ×1
stream ×1
wiredtiger ×1