我有这个模拟课:
class MockCategoriesRepository implements CategoriesRepository {
@Override
public LiveData<List<Category>> getAllCategories() {
List<Category> categories = new ArrayList<>();
categories.add(new Category());
categories.add(new Category());
categories.add(new Category());
MutableLiveData<List<Category>> liveData = new MutableLiveData<>();
liveData.setValue(categories);
return liveData;
}
}
Run Code Online (Sandbox Code Playgroud)
和测试:
@Test
public void getAllCategories() {
CategoriesRepository categoriesRepository = new MockCategoriesRepository();
LiveData<List<Category>> allCategories = categoriesRepository.getAllCategories();
}
Run Code Online (Sandbox Code Playgroud)
我想测试List<Category>空.
我该怎么做?我可以使用Mockito吗?
我实现这样的分页:
List<Products> products = productRepository.findAllProducts(productsRequest.getInitiatorType(), "ACTIVE",
new PageRequest(page, 100, Sort.Direction.DESC, "insertDate"));
Run Code Online (Sandbox Code Playgroud)
但是如何获得此查询的总大小?只复制这样的查询?
@Query("SELECT t FROM Products t WHERE t.isApproved = true AND t.partnerId = ?1 AND t.categories.status = ?2")
List<OpcClProducts> findAllOpcClProducts(String senderId, String status, Pageable pageable);
@Query("SELECT COUNT(t) FROM Products t WHERE t.isApproved = true AND t.partnerId = ?1 AND t.categories.status = ?2")
long getTotalCount(String senderId, String status);
Run Code Online (Sandbox Code Playgroud)
并调用2个查询:for totalCount和数据?
我尝试了解ViewModel.我创建了ViewModel:
public class UsersViewModel extends ViewModel {
private final UsersRepository usersRepository;
public UsersViewModel(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
public LiveData<List<User>> loadAll() {
return usersRepository.getAll();
}
}
Run Code Online (Sandbox Code Playgroud)
但我不明白两件事:
UsersRepository 这个VievModel?当我使用演示者时,我可以用匕首2创建它,如下所示:Run Code Online (Sandbox Code Playgroud)@Module public class PresentersModule { @Singleton @Provides UsersPresenter provideUsersPresenter(UsersRepository usersRepository) { return new UsersPresenter(usersRepository); } }
但我怎么能这样做呢ViewModel?像这样?
@Module
public class ViewModelsModule {
@Singleton
@Provides
UsersViewModel provideUsersViewModel(UsersRepository usersRepository) {
return new UsersViewModel(usersRepository);
}
}
Run Code Online (Sandbox Code Playgroud)
如何在片段中获取此ViewModel?有了演示者,我可以这样:
presenter = MyApplication.get().getAppComponent().getUsersPresenter();
我有带有 2 个属性文件的 Spring Boot 服务器:application-local.properties和application-test.properties
在每个文件中,我都有用于开发机器和测试的配置。像这样开始:
-Dspring.profiles.active=local
Run Code Online (Sandbox Code Playgroud)
但是在新的 Spring Boot 项目中,我使用了.yaml配置文件。而且我不明白如何使用profileswith .yaml. 我尝试阅读文档,但什么也不懂。你能一步一步解释该怎么做吗?
我需要两个文件?
application-local.yaml 和 application-test.yaml
或者我需要在一个application.yaml文件中写入所有内容?如果在一个文件中,我如何分离配置?这是我的配置:
server:
path: ***
port: ***
cxf:
path: ***
spring.datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: oracle.jdbc.OracleDriver
url: ***
username: ***
password: ***
hikari:
minimumIdle: 5
maximumPoolSize: 20
idleTimeout: 30000
poolName: SpringBootJPAHikariCP
maxLifetime: 2000000
connectionTimeout: 30000
connection-test-query: SELECT 1 FROM DUAL
spring.jpa:
show-sql: false
database-platform: org.hibernate.dialect.Oracle10gDialect
properties.hibernate.jdbc.batch_size: 30
properties.hibernate.cache.use_second_level_cache: false
hibernate:
ddl-auto: validate
spring.cache:
ehcache: …Run Code Online (Sandbox Code Playgroud) 我的ActiveAndroid数据库中有大约20-30个表.当我按下logoutButton我要清除所有表格.我怎么能这样做ActiveAndroid?
public void logOut() {
//clear all tables
}
Run Code Online (Sandbox Code Playgroud) 我写了很长时间的问题,很长。但我试图尽可能多地展示我做了什么,什么是不清楚的。请完成阅读并感谢您的耐心等待!
我尝试了很多实验,写了 spring doc spring doc,(在本站写问题)但还是没看懂全貌。
我有一项任务是在一个 spring-boot 服务器中实现一些调度程序。
South 调度程序必须与线程池一起使用并具有不同的设置。例如第一个 - 5 个线程,第二个 - 10 个线程。虽然我明白了,但我尝试了几个选项,最后还是糊涂了,我应该选择什么以及如何更正确地使用它:
为了测试,我创建了 2 个带有逻辑的 bean,并且每次都会从这个 bean 调用方法:
@Slf4j
@Component
public class TestBean {
public void test(){
try {
Thread.sleep(9000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
log.info("First bean print");
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Slf4j
@Component
public class TestBean2 {
public void test(){
try {
Thread.sleep(9000L);
} catch (InterruptedException e) {
e.printStackTrace();
} …Run Code Online (Sandbox Code Playgroud) 我有一个带有BLOB列的实体:
@Lob
@Column(name = "SRC")
private byte[] src;
Run Code Online (Sandbox Code Playgroud)
我的应用程序使用两个数据库:Oracle 和 PostgreSQL。当我按照上面所写的那样使用 Oracle 启动应用程序时,一切正常,但是当我使用 PostgreSQL 启动时,出现错误:
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [src] in table [catalogs]; found [bytea (Types#BINARY)], but expecting [oid (Types#BLOB)]
Run Code Online (Sandbox Code Playgroud)
之后我在谷歌上阅读了文章和建议并修复了它:
@Lob
@Type(type="org.hibernate.type.BinaryType")
@Column(name = "SRC")
private byte[] src;
Run Code Online (Sandbox Code Playgroud)
现在它在 PostgreSQL 上工作得很好,但在 Oracle 上我遇到了异常:
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [src] in table [catalogs]; found [blob (Types#BLOB)], but expecting [raw(255) (Types#VARBINARY)]
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能使其在两个数据库上都工作?
PS我对CLOB也有类似的问题
我尝试使用flyway进行迁移。我找到这个选项
spring.flyway.target = # 应考虑迁移的目标版本。
但我需要设置版本来开始迁移。例如,我需要从V3_foo.sql
我可以做吗?
简要说明为什么我需要它。我有一个包含数据的数据库。之前没有使用过迁移工具。一切都是手动完成的。现在我已经创建了一个init.sql并将整个基础结构的创建放入其中。现在,当添加更改时,我将从版本 2 开始迁移。如果您需要在新的空数据库上运行 - 从版本 1
当我尝试在计算机上启动Logstash服务器时,出现以下错误:
Sending Logstash's logs to D:/kibana/logstash-6.3.2/logs which is now configured
via log4j2.properties
ERROR: Pipelines YAML file is empty. Location: D:/kibana/logstash-6.3.2/config/p
ipelines.yml
usage:
bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG]
bin/logstash --modules MODULE_NAME [-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAM
E.VARIABLE_NAME=VALUE"] [-t] [-w COUNT] [-l LOG]
bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace
] [-w COUNT] [-l LOG]
bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace]
bin/logstash -V [--log.level fatal|error|warn|info|debug|trace]
bin/logstash --help
[2018-12-14T16:16:10,809][ERROR][org.logstash.Logstash ] java.lang.IllegalSta
teException: Logstash stopped processing because of an error: (SystemExit) exit
Run Code Online (Sandbox Code Playgroud)
我全力以赴并吸引新代码(默认配置),无论如何都会出现此错误。
我有Stream Stream<Integer> stream// 1,2,3,4,5,6,7,8,9
我需要int[3][3]从中创造stream
我该怎么做?
我试过了
int[][] ints = stream
.map(i -> new int[]{i})
.toArray(int[][]::new);
Run Code Online (Sandbox Code Playgroud)
但我得到: [[1], [2], [3], [4], [5], [6], [7], [8], [9]]
但是我需要: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
编辑:我认为这不是dublicate 这是因为我需要int [3] [3]数组而不是String [] []
我试过这个例子
int[][] array =
IntStream.range(0, 3)
.mapToObj(x -> IntStream.range(0, 3).boxed()
.toArray(Integer[]::new))
.toArray(int[][]::new);
Run Code Online (Sandbox Code Playgroud)
我得到错误
Exception in thread "main" java.lang.ArrayStoreException: [Ljava.lang.Integer;
at java.util.stream.Nodes$FixedNodeBuilder.accept(Nodes.java:1222)
at java.util.stream.IntPipeline$4$1.accept(IntPipeline.java:250)
at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:693)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:545) …Run Code Online (Sandbox Code Playgroud) java ×5
android ×3
spring ×2
spring-boot ×2
arrays ×1
asynchronous ×1
dagger-2 ×1
flyway ×1
hibernate ×1
java-stream ×1
jpa ×1
logstash ×1
oracle ×1
pagination ×1
postgresql ×1
threadpool ×1
viewmodel ×1
yaml ×1