小编Mau*_*nti的帖子

使用RestTemplate请求将Multipart File作为POST参数发送

我正在使用Spring 3和RestTemplate.我基本上有两个应用程序,其中一个必须将值发布到另一个应用程序.通过休息模板.

当要发布的值是字符串时,它的工作完美,但是当我必须发布混合和复杂的参数(如MultipartFiles)时,我会得到转换器异常.

例如,我有这个:

App1 - PostController:

@RequestMapping(method = RequestMethod.POST)
public String processSubmit(@ModelAttribute UploadDTO pUploadDTO, 
        BindingResult pResult) throws URISyntaxException, IOException {
    URI uri = new URI("http://localhost:8080/app2/file/receiver");

    MultiValueMap<String, Object> mvm = new LinkedMultiValueMap<String, Object>();
    mvm.add("param1", "TestParameter");
    mvm.add("file", pUploadDTO.getFile()); // MultipartFile

    Map result = restTemplate.postForObject(uri, mvm, Map.class);
    return "redirect:postupload";
}
Run Code Online (Sandbox Code Playgroud)

另一方面......我有另一个Web应用程序(App2)从App1接收参数.

App2 - ReceiverController

@RequestMapping(value = "/receiver", method = { RequestMethod.POST })
public String processUploadFile(
        @RequestParam(value = "param1") String param1,
        @RequestParam(value = "file") MultipartFile file) {

    if (file == null) {
        System.out.println("Shit!... …
Run Code Online (Sandbox Code Playgroud)

multipartform-data spring-mvc resttemplate

38
推荐指数
6
解决办法
11万
查看次数

JPA - Criteria API和EmbeddedId

我想使用条件来进行以下查询.我有一个实体与EmbeddedId定义:

 @Entity
 @Table(name="TB_INTERFASES")
 public class Interfase implements Serializable {

  @EmbeddedId
  private InterfaseId id;
 }

 @Embeddable
 public class InterfaseId implements Serializable {
  @Column(name="CLASE")
  private String clase;
 }
Run Code Online (Sandbox Code Playgroud)

我想要做的标准查询是:

 CriteriaBuilder criteriaBuilder = this.entityManager.getCriteriaBuilder();
 CriteriaQuery<Interfase> criteriaQuery = criteriaBuilder.createQuery(Interfase.class);
 Root<Interfase> entity = criteriaQuery.from(Interfase.class);
 criteriaQuery.where(
   criteriaBuilder.equal(entity.get("clase"), "Clase"),
 );
Run Code Online (Sandbox Code Playgroud)

但是这会抛出IllegalArgumentException:

java.lang.IllegalArgumentException: Not an managed type: class InterfaseId
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个问题:

 Root<Interfase> entity = criteriaQuery.from(Interfase.class);
 criteriaQuery.where(
   criteriaBuilder.equal(entity.get("id").get("clase"), "Clase"),
 );
Run Code Online (Sandbox Code Playgroud)

而且这个......

 Root<Interfase> entity = criteriaQuery.from(Interfase.class);
 criteriaQuery.where(
   criteriaBuilder.equal(entity.get("id.clase", "Clase"),
 );
Run Code Online (Sandbox Code Playgroud)

没有运气.所以我的问题是,当我的类使用Embedded和EmbeddedId注释时,如何使用条件进行查询?

谢谢!.毛罗.

jpa composite-id criteria-api jpa-2.0

27
推荐指数
1
解决办法
3万
查看次数

Spring Boot +弹性搜索

我正在尝试使用Spring Boot和Elastic Search设置应用程序.此应用程序已使用Spring Data JPA存储库来保留我的实体.我尝试在启用ElasticSearch配置的情况下运行应用程序时遇到的问题是我在扫描存储库时遇到异常.

我收到以下异常:

Caused by: java.lang.IllegalArgumentException: Unable to obtain mapping metadata for int!
Run Code Online (Sandbox Code Playgroud)

我的存储库按以下方式定义:

@Repository
public interface AdminUserRepository extends PagingAndSortingRepository<AdminUser, Long> {

    /**
     * Returns an AdminUser that match the email specified by parameter.
     * @param email AdminUser email.
     * @return An AdminUser instance.
     */
    AdminUser findByEmail(final String email);

    /**
     * Returns an AdminUser that match the email and business name specified by parameter.
     * @param email AdminUser email.
     * @param businessName Business Name.
     * @return number …
Run Code Online (Sandbox Code Playgroud)

elasticsearch spring-data spring-data-jpa spring-boot

3
推荐指数
1
解决办法
5106
查看次数