我正在尝试设置Hibernate Envers以使用我的Spring Boot应用程序.
我已经包含了Envers依赖项并添加了@Audited注释,它工作正常,但我无法配置特定的Envers属性,Spring Boot似乎没有接受它们.
具体来说,我试图通过将这些设置为application.properties来为审计表设置不同的数据库模式,但没有运气:
hibernate.envers.default_schema=app_audit
Run Code Online (Sandbox Code Playgroud)
要么
org.hibernate.envers.default_schema=app_audit
Run Code Online (Sandbox Code Playgroud)
要么
spring.jpa.hibernate.envers.default_schema=app_audit
Run Code Online (Sandbox Code Playgroud)
这些都不奏效.有谁知道如何设置这些?
编辑.
正如M. Deinum建议我尝试的那样:
spring.jpa.properties.org.hibernate.envers.default_schema=app_audit
Run Code Online (Sandbox Code Playgroud)
它工作了!
我有一个工作 StepFunction 状态机,有 4 个步骤触发 4 个 Lambda。
由于其中一个步骤将是一个运行时间较长的任务,因此我决定将其中一个 Lambda 转换为 Fargate 任务。
配置 ECS 和 Fargate 任务后,我尝试更新状态机定义,但收到错误:Failed to update state machine.没有任何其他消息。
我的状态机定义似乎是有效的,就是这样,只是没有实际的 ARN:
{
"Comment": "My Workflow",
"StartAt": "Step1",
"States": {
"Step1": {
"Type": "Task",
"Resource": "copy-pasted-arn-of-lambda",
"Next": "Step2"
},
"Step2": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"LaunchType": "FARGATE",
"Cluster": "copy-pasted-arn-of-cluster",
"TaskDefinition": "copy-paster-arn-of-task-definition",
"Overrides": {
"ContainerOverrides": [
{
"Name": "container-name",
"Command.$": "$.commands"
}
]
}
},
"Next": "Step3",
"Catch": [
{
"ErrorEquals": [
"States.ALL"
],
"Next": …Run Code Online (Sandbox Code Playgroud) 使用AWS SAM时,我曾经运行build命令,该命令将遍历我所有的Lambda函数包并安装它们的依赖项(npm install在它们上运行)。
如何使用AWS CDK实现相同的行为?它似乎不是自动执行的,还是我缺少了什么?
我有这样的事情:
types = ['landline', 'cell']
Phone.find_or_create_by(person_id: 1, type: types) do |record|
record.number = '0'
end
Run Code Online (Sandbox Code Playgroud)
这行不通。不会创建新记录。但是当我重写它看起来像这样:
types = ['landline', 'cell']
types.each do |type|
Phone.find_or_create_by(person_id: 1, type: type) do |record|
record.number = '0'
end
end
Run Code Online (Sandbox Code Playgroud)
有用。
有什么想法为什么find_or_create_by不能将数组作为条件?
我正在尝试将参数传递给Accessor查询.我有以下内容:
@Accessor
public interface ActivityAccessor {
@Query("SELECT * FROM activity WHERE user_id = :id limit :limit")
Result<UserActivity> findUserActivityByUserId(@Param("id") Long ownerId, @Param("limit") int limit);
}
Run Code Online (Sandbox Code Playgroud)
使用以下方法调用访问器方法:
MappingManager manager = new MappingManager (getSession());
ActivityAccessor activityAccessor = manager.createAccessor(ActivityAccessor.class);
Result<UserActivity> activities = activityAccessor.findUserActivityByUserId(userId, 20);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Caused by: com.datastax.driver.core.exceptions.SyntaxError: line 1:99 no viable alternative at input 'limit' (... LIMIT :[limit])
Run Code Online (Sandbox Code Playgroud)
但是,当我更改访问器方法以显式声明限制值时,它可以正常工作:
@Query("SELECT * FROM activity WHERE user_id = :id limit 20")
Result<UserActivity> findUserActivityByUserId(@Param("id") Long ownerId);
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会发生这种情况?