我有一个自定义查询在org.springframework.data.mongodb.repository该变
@Query("{'additionalInfo.suspicious' : true}")
List<Trip> findSuspiciousTripsByFleetId(String fleetId, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
我如何通过(日期desc)向此添加订单?
OrderByDateDesc例如,它是否神奇地接受后缀?
提前致谢.
我有实体用户
@Entity
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String username;
private String password;
}
Run Code Online (Sandbox Code Playgroud)
UserRepository
public interface UserRepository extends JpaRepository<UserRepository, Long> {
User findByUsername(String username);
}
Run Code Online (Sandbox Code Playgroud)
调节器
@RestController
@RequestMapping("/user")
public class UserController {
private UserRepository userRepository;
private BCryptPasswordEncoder bCryptPasswordEncoder;
public UserController(UserRepository userRepository, BCryptPasswordEncoder bCryptPasswordEncoder) {
this.userRepository = userRepository;
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
}
@PostMapping("/sign-up")
public void signUp(@RequestBody User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
userRepository.save(user);
}
}
Run Code Online (Sandbox Code Playgroud)
在signUp方法中的UserController类userRepository.save(user)throw error类型参数'S'的推断类型'S'不在其范围内; 应该实现'Repository.UserRepository
我有一个扩展ReactiveMongoRepository的MovieRepository.我想以反应方式保存单个POJO.但ReactiveMongoRepository不为Mono或Publisher提供保存方法.我必须使用block()方法或使用saveAllReactiveMongoRepository中的方法.
public Mono<ServerResponse> create(ServerRequest request) {
Mono<Movie> movieMono = request.bodyToMono(Movie.class);
return movieRepository.save(movieMono.block()) //
.flatMap((movie) -> ServerResponse.ok().body(fromObject(movie)));
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决这类问题?我不认为使用块方法是反应式编程的好主意.
spring mongodb reactive-programming spring-data-mongodb project-reactor
我有一个 Springboot 应用程序,其中配置了一些 Camel 路由。
public class CamelConfig {
private static final Logger LOG = LoggerFactory.getLogger(CamelConfig.class);
@Value("${activemq.broker.url:tcp://localhost:61616}")
String brokerUrl;
@Value("${activemq.broker.maxconnections:1}")
int maxConnections;
@Bean
ConnectionFactory jmsConnectionFactory() {
PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(new ActiveMQConnectionFactory(brokerUrl));
pooledConnectionFactory.setMaxConnections(maxConnections);
return pooledConnectionFactory;
}
@Bean
public RoutesBuilder route() {
LOG.info("Initializing camel routes......................");
return new SpringRouteBuilder() {
@Override
public void configure() throws Exception {
from("activemq:testQueue")
.to("bean:queueEventHandler?method=handleQueueEvent");
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试从activemq:testQueue到 的这条路线queueEventHandler::handleQueueEvent。我尝试了这里提到的不同内容http://camel.apache.org/camel-test.html,但似乎没有让它工作。
我正在尝试做这样的事情:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {CamelConfig.class, CamelTestContextBootstrapper.class})
public class CamelRouteConfigTest {
@Produce(uri …Run Code Online (Sandbox Code Playgroud) 可以说我有一个配置类(JmsQueueConfig,见下文).在本课程中,我想为整个应用程序配置多个队列.对于一个队列,没有问题.但是,当我添加第二个队列并尝试从服务(MemberService)使用其中一个队列时,Spring-boot告诉我
com.example.notification.application.jms.JmsEventPublisher中构造函数的参数1需要一个bean,但是找到了2个: - queueAccountToNotification:由类路径资源中的方法'queueAccountToNotification'定义[com/example/notification/application/jms/JmsQueueConfig.class] - queueNotificationToAccount:由类路径资源[com/example/notification/application/jms/JmsQueueConfig.class]中的方法'queueNotificationToAccount'定义
行动:
考虑将其中一个bean标记为@Primary,更新使用者以接受多个bean,或使用@Qualifier标识应该使用的bean
这是我的Config-Class:
@Configuration
@EnableJms
@ImportAutoConfiguration(classes = {
JmsAutoConfiguration.class,
ActiveMQAutoConfiguration.class
})
public class JmsQueueConfig {
@Value("${APP_QUEUE_ACCOUNT_TO_NOTIFICATION}")
private String queueAccountToNotificationName;
@Value("${APP_QUEUE_NOTIFICATION_TO_ACCOUNT}")
private String queueNotificationNameToAccount;
@Bean
@Qualifier("q1")
public Queue queueAccountToNotification() {
return new ActiveMQQueue(queueAccountToNotificationName);
}
@Bean
@Qualifier("q2")
public Queue queueNotificationToAccount() {
return new ActiveMQQueue(queueNotificationNameToAccount);
}
@Bean
public MessageConverter jacksonJmsMessageConverter() {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
return converter;
}
@Bean
@Qualifier("p1")
public EventPublisher eventPublisher(JmsTemplate jmsTemplate) {
return new JmsEventPublisher(jmsTemplate, new ActiveMQQueue(queueAccountToNotificationName));
}
@Bean
public MessageConverter …Run Code Online (Sandbox Code Playgroud) 我是骆驼新手,正在编写一个小型 POC 以在现有应用程序中实现。应用程序将 xml 请求作为输入,其中包含请求的服务和相关数据。然后它会一一调用这些服务。当服务被成功调用时,我会在处理器中检索 http 响应代码,如下所示,并执行进一步的逻辑:
Object code = exchange.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE);
if(null!=code && code instanceof Integer)
{
responseCode = (Integer) code;
}
Run Code Online (Sandbox Code Playgroud)
在成功的情况下,收到的 responseCode = 201
根据responseCode,我知道服务调用是否成功,然后继续下一个。
但是,我试图通过使服务 url 不正确来产生负面情况,并且再也看不到 http 响应代码:
原始服务网址 - http://xxx:0000/.../.../.../.../...
修改后的服务网址 - http://xxx:0000/.../.../.../.../abc/...
在失败的情况下,收到的 responseCode = null
在邮递员中,我收到以下错误:
org.apache.camel.http.common.HttpOperationFailedException:HTTP 操作失败调用
http://xxx:0000/.../.../.../.../abc/...statusCode: 404 at org.apache.camel.component.http.HttpProducer.populateHttpOperationFailedException(HttpProducer.java:274) at org.apache.camel.component。 http.HttpProducer.process(HttpProducer.java:183)
我不知道为什么当邮递员的错误消息中出现 http 响应代码时,Exchange 不包含它。
我使用 onException 来处理任何异常,然后调用处理器来进一步处理流程:
<camel:onException>
<camel:exception>java.lang.Exception</camel:exception>
<camel:process ref="xxxProcessor" />
</camel:onException>
Run Code Online (Sandbox Code Playgroud)
我想我可以将 responseCode=null 视为失败并继续我的逻辑,但想了解为什么响应代码被返回为 null。
提前致谢!
我有 B 类扩展 A 类。如何在 C 类中编写一个方法,该方法可以接收包含 B 类或 A 类对象的 ArrayList 而不覆盖?
public class A {
//Some methods here
}
public class B extends A {
//Some methods here
}
public class C {
public Static void main(String[] args){
ArrayList<A> one = new ArrayList<>();
one.add(new A());
ArrayList<B> two = new ArrayList<>();
two.add(new B())
doStuff(one);
doStuff(two);
}
public void doStuff(args){
//go ahead do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以将一个区域中创建的启动模板复制到另一个区域。
这背后的想法是,如果由于某种原因该区域出现故障,我想使用此启动模板在另一个区域启动我的服务。
我是 Spring JPA 的新手(或者说是在很长一段时间后研究它),我需要一些帮助来编写 JPA 存储库。我有一个实体类 Itinerary 和 User。两者之间是一对一的关系。
@Entity
@Table(name = "ITINERARY")
public class Itinerary implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue(generator = "Itinerary_IDGenerator", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "Itinerary_IDGenerator", sequenceName = "Itinerary_IDGenerator", allocationSize = 1)
private long id;
@Basic(optional = false)
@Column(nullable = false)
@Temporal(TemporalType.DATE)
private Date itineraryDate;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "USER_ID")
User user;
}
@Entity
@Table(name = "USER")
public class User implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue(generator = "User_IDGenerator", strategy = GenerationType.SEQUENCE) …Run Code Online (Sandbox Code Playgroud) java ×4
spring-boot ×4
spring ×3
apache-camel ×2
mongodb ×2
spring-data ×2
amazon-ec2 ×1
camel-test ×1
inheritance ×1