小编Ozz*_*zie的帖子

Android Studio:将jar添加为库?

我正在尝试使用新的Android Studio,但我似乎无法让它正常工作.

我正在使用Gson库来序列化/反序列化JSON对象.但是库不知何故不包含在构建中.

我创建了一个只有MainActivity的新项目.在/ libs文件夹中复制gson-2.2.3.jar并将其添加为库依赖项(右键单击 - >添加为库).这包括android studio中的jar,因此可以从源文件中引用它.

当我尝试运行该项目时,它无法编译,所以我添加:

compile files('libs/gson-2.2.3.jar')
Run Code Online (Sandbox Code Playgroud)

到de .gradle文件中的依赖项.之后它正确编译,但在运行应用程序时,我得到了一个ClassDefNotFoundException.

有谁知道我做错了什么?

android dependency-management gradle gson android-gradle-plugin

1006
推荐指数
21
解决办法
72万
查看次数

在连接表上Hibernate NOT IN子查询

我正在尝试在hibernate中执行查询,如下面的sql查询:

SELECT phone.* FROM phone WHERE phone.id NOT IN (SELECT phone_id FROM user_phone)

我有以下实体类:

@Entity
class User {
    @Id
    private Integer id;

    @ManyToMany
    private Set<Phone> phoneList;

}
Run Code Online (Sandbox Code Playgroud)

和电话类:

@Entity
class Phone {

    @Id
    private Integer id;

    private String description;

}
Run Code Online (Sandbox Code Playgroud)

Hibernate自动创建一个名为user_phone的联结表.现在我想选择所有未被任何用户使用的手机.我只是想弄清楚如何用Hibernate做到这一点.我曾尝试过以下方法:

Session session = (Session) entityManager.getDelegate();
Criteria criteria = session.createCriteria(Phone.class);

DetachedCriteria subCriteria = DetachedCriteria.forClass(User.class);
subCriteria.setProjection(Property.forName("phoneList"));

criteria.add(Subqueries.propertyNotIn("id", subCriteria))
Run Code Online (Sandbox Code Playgroud)

但是,这会返回id与任何手机的ID不同的所有用户.所以这不是我想要的.

有人知道怎么做吗?

java sql hibernate

8
推荐指数
1
解决办法
7944
查看次数

Spring Web Reactive客户端

我正在尝试使用Spring Reactive WebClient将文件上传到Spring控制器。控制器非常简单,看起来像这样:

@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<String> uploadFile(
        @RequestParam("multipartFile") MultipartFile multipartFile,
        @RequestParam Map<String, Object> entityRequest
        ) {
    entityRequest.entrySet().forEach(System.out::println);
    System.out.println(multipartFile);
    return ResponseEntity.ok("OK");
}
Run Code Online (Sandbox Code Playgroud)

当我将此控制器与cURL一起使用时,一切正常

curl -X POST http://localhost:8080/upload -H 'content-type: multipart/form-data;' -F fileName=test.txt -F randomKey=randomValue -F multipartFile=@document.pdf
Run Code Online (Sandbox Code Playgroud)

multipartFile转到正确的参数,其他参数转到Map。

当我尝试从WebClient执行相同操作时,我陷入了困境。我的代码如下所示:

    WebClient client = WebClient.builder().baseUrl("http://localhost:8080").build();

    MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
    map.set("multipartFile", new ByteArrayResource(Files.readAllBytes(Paths.get("/path/to/my/document.pdf"))));
    map.set("fileName", "test.txt");
    map.set("randomKey", "randomValue");
    String result = client.post()
            .uri("/upload")
            .contentType(MediaType.MULTIPART_FORM_DATA)
            .syncBody(map)
            .exchange()
            .flatMap(response -> response.bodyToMono(String.class))
            .flux()
            .blockFirst();
    System.out.println("RESULT: " + result);
Run Code Online (Sandbox Code Playgroud)

这将导致400错误

{
  "timestamp":1510228507230,
  "status":400, …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-boot spring-webflux

6
推荐指数
1
解决办法
2224
查看次数

Jackson csv writer 没有使用正确的列分隔符

我正在尝试使用 Jackson 2.2.2(尤其是 jackson-dataformat-csv)编写一个 CSV 文件,但我无法让它使用 ';' 作为文件分隔符。

我正在使用以下代码来初始化编写器:

CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(MyObject.class);
schema = schema.withColumnSeparator(CSV_COLUMN_SEPARATOR);

ObjectWriter myObjectWriter = mapper.writer(schema);
Run Code Online (Sandbox Code Playgroud)

要创建 csv,我会执行以下操作:

FileOutputStream tempFileOutputStream = new FileOutputStream(tempFile);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(tempFileOutputStream, STREAM_BUFFER_SIZE);
writerOutputStream = new OutputStreamWriter(bufferedOutputStream, FILE_ENCODING);

myObjectWriter.writeValue(writerOutputStream, listOfMyObjects);
Run Code Online (Sandbox Code Playgroud)

然而,生成的文件仍然使用默认的“,”作为列分隔符。当我用调试器检查对象时,';' 在对象中设置为分隔符,所以我想它应该可以工作。有谁知道我做错了什么还是这是一个错误?

java jackson

5
推荐指数
1
解决办法
5327
查看次数