是否可以使用其他字段的规则验证请求,或从请求中删除该字段?
简单的例子,我有FormRequest对象的规则:
public function rules() {
return [
'id' => 'required|integer',
'company_name' => 'required|max:255',
];
}
Run Code Online (Sandbox Code Playgroud)
当我得到任何其他字段的发布请求时,我想在控制器中获得错误/异常,或者我想只获取id和company_name字段,而没有任何其他字段.它与laravel中存在任何特征,或者我必须按照我的方式制作它?
我有简单的Spring 4 WebMVC应用程序(Java-config),我想添加JPA.但是当我尝试运行app(在Tomcat上进行了部署)时,我得到:什么可能是错误的来源?
创建名为'indexController'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:org.demo.webtemplate.db.repository.CustSysRepository org.demo.webtemplate.controllers.IndexController.repository; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'custSysRepository'的bean时出错:设置bean时无法创建[org.springframework.orm.jpa.SharedEntityManagerCreator]类型的内部bean'(内部bean)#f4da8a0' property'entalManager'; 嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'(内部bean)#f4da8a0'的bean时出错:在设置构造函数参数时无法解析对bean'entalManagerFactory'的引用; 嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为"entityManagerFactory"的bean
初始化:
package org.demo.webtemplate;
...
public class SpringWebMvcInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(Config.class);
ctx.setServletContext(servletContext);
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
Run Code Online (Sandbox Code Playgroud)
配置:
package org.demo.webtemplate;
...
@Configuration
@EnableWebMvc
@ComponentScan("pl.bzwbk.webtemplate")
@EnableJpaRepositories("pl.bzwbk.webtemplate.db.repository")
public class Config {
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
package org.demo.webtemplate.controllers;
...
@Controller …Run Code Online (Sandbox Code Playgroud) 我创建了一组带有嵌入式 kafka (spring-kafka-test) 的测试 (JUnit 5),当我有时(并非总是)运行它们时,我在单次运行的一个或多个测试中得到“主题 'some_name' 已存在”。
所有测试都使用相同的主题名称(我不想为每个测试更改该名称),测试类具有 DirtiesContext 注释(AFTER_EACH_TEST_METHOD)。我不确定这个问题的原因是什么,以及如何解决它。
@SpringBootTest
@EmbeddedKafka(partitions = 1, topics = {"some_name"}, ports = 9092)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@ActiveProfiles("test")
public class RemovalKafkaTestIT {
private EmbeddedKafkaBroker embeddedKafkaBroker = new EmbeddedKafkaBroker(1, true, TOPIC);
private final static String SERVER_ADDRES = "127.0.0.1:9092";
private Consumer<String, String> prepareConsumer() {
Map<String, Object> configsConsumer = new HashMap<>(KafkaTestUtils.consumerProps("consumer", "false", embeddedKafkaBroker));
configsConsumer.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
configsConsumer.put("bootstrap.servers", SERVER_ADDRES);
Consumer<String, String> consumer = new DefaultKafkaConsumerFactory<>(configsConsumer, new StringDeserializer(), new StringDeserializer()).createConsumer();
consumer.subscribe(singleton("some_name"));
return consumer;
}
@Test
public void …Run Code Online (Sandbox Code Playgroud)
当我尝试在 Oracle DB 上使用 spring 注释为 REPEATABLE_READ 设置隔离级别时,我得到:
java.sql.SQLException: READ_COMMITTED 和 SERIALIZABLE 是唯一有效的事务级别。- (ORA-17030)
这是处理这种情况的方法吗?
@Transactional(isolation = Isolation.REPEATABLE_READ)
@Override
public List<ToMq> getAndChange1000NotForwarded() {
String queryText = "SELECT c FROM ToMq c WHERE c.forwarded = 0 AND";
TypedQuery<ToMq> query = em.createQuery(queryText, ToMq.class);
query.setMaxResults(1000);
List<ToMq> resultList = query.getResultList();
Date current = new Date();
for (ToMq toMq : resultList) {
toMq.setForwarded(Boolean.TRUE);
toMq.setForwardTimestamp(current);
}
save(resultList);
return resultList;
}
Run Code Online (Sandbox Code Playgroud) 我已经在 postgres DB 中的一些表上配置了全文搜索。当我尝试使用超过 1 个单词构建 tsquery 时,我在 tsquery 中使用 & (AND) 作为分隔符得到单词。实际上,我找不到结果,其中只有我所问的一个词。
例子:
| ID | Name | Description | Rank |
|----|---------|---------------------|------|
| 1 |Somethink|This is very strange | 0.2 |
| 2 |Other |This is strange a bit| 0 |
Run Code Online (Sandbox Code Playgroud)
当我要求“非常奇怪”时,我的 tsquery 看起来像那样'very' & 'strange'
,并且该 tsquery 的排名(ts_rank_cd)大于 0 仅对于 ID == 1,对于 ID == 2 是 0。
我的目标是使第二句话的排名> 0。
任何想法/提示/解决方案?
java ×3
forms ×1
jpa ×1
junit5 ×1
laravel ×1
oracle11g ×1
php ×1
postgresql ×1
spring-kafka ×1
spring-mvc ×1