小编use*_*472的帖子

如何将LocalContainerEntityManagerFactoryBean设置为JpaTransactionManager?

在春季的官方文档中,其内容如下

@Bean
  public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    vendorAdapter.setGenerateDdl(true);

    LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
    factory.setJpaVendorAdapter(vendorAdapter);
    factory.setPackagesToScan("com.acme.domain");
    factory.setDataSource(dataSource());
    return factory;
  }

  @Bean
  public PlatformTransactionManager transactionManager() {

    JpaTransactionManager txManager = new JpaTransactionManager();
    txManager.setEntityManagerFactory(entityManagerFactory());
    return txManager;
  }
Run Code Online (Sandbox Code Playgroud)

重要的是创建LocalContainerEntityManagerFactoryBean而不是直接创建EntityManagerFactory,因为前者除了简单地创建EntityManagerFactory之外,还参与异常转换机制。

但是当我尝试使用它时,我得到了错误:

setEntityManagerFactory
(javax.persistence.EntityManagerFactory)
in JpaTransactionManager cannot be applied
to
(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)
Run Code Online (Sandbox Code Playgroud)

这是我的进口:

import org.apache.tomcat.jdbc.pool.DataSourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-data-jpa

4
推荐指数
1
解决办法
2675
查看次数

如何在 Freemarker 中将 Long 转换为 String?

我有模型

class someDto{
private Long id;
private String hz;
}
Run Code Online (Sandbox Code Playgroud)

在页面中我需要显示

<td><p id="${someDto.id}"></p></p></td>
Run Code Online (Sandbox Code Playgroud)

我明白12 333 但我需要12333

如何在 Freemarker 中转换LongString

java freemarker

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

如何在客户端从控制器下载zip文件?春天的靴子

我有file.zipDB喜欢的BLOB.我想在Spring控制器中创建方法,以便在客户端下载此文件.

@RequestMapping(value = "/downloadResolution/{resolutionId}", method = RequestMethod.GET)
    public void downloadResolution(@PathVariable("resolutionId") Long resolutionId, HttpServletResponse response) {
        Resolution resolution = resolutionService.findOne(resolutionId);
        ResolutionArchive resolutionArchive = resolution.getResolutionArchive();
        if (resolutionArchive == null) return;
        byte[] archive = resolutionArchive.getArchive();
        //this byte[] archive - my zip file from db
    }
Run Code Online (Sandbox Code Playgroud)

如何更改此methot以便在客户端下载?

用户按下载按钮.Methos从byte []中获取数据,用户可以下载它.

编辑

我尝试了@pleft的解决方案,它的工作原理.我知道 - 我使用ajax进行呼叫方法

function downloadResolution(resulutionId) {
        $.ajax({
            type: 'GET',
            dataType: "json",
            url: '/downloadResolution/' + resulutionId,
            success: function (data) {
            },
            error: function (xhr, str) {
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

如果我使用ajax,怎么意识到这一点?

java arrays file spring-mvc spring-boot

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

BigDecimal等于<=和> =最佳实践

我可以用compareTo()方法比较2个BigDecimal对象

BigDecimal val = new BigDecimal(10);

val.compareTo(new BigDecimal(11)) //return -1 

val < 11 - -1
val = 11 - 0
val > 11 - 1
Run Code Online (Sandbox Code Playgroud)

但我如何比较val> =和<= ???

if(val.compareTo(new BigDecimal(11) ==-1) || val.compareTo(new BigDecimal(11) ==0)) // val <= 11
Run Code Online (Sandbox Code Playgroud)

但不知怎的,它是歪曲的

java bigdecimal

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

映射 dto/domain 以在微服务之间传输的最佳方法

我有 DTO 和 DOMAIN 模型:

@Data
public class CarDomain {
    private String name;
    private int year;
    private String color;
}
Run Code Online (Sandbox Code Playgroud)

@Data
public class CarDto {
    private String name;
    private int year;
    private String color;
}
Run Code Online (Sandbox Code Playgroud)

我有 3 个微服务(MS)通过 RabbitMq 相互通信。我有models module所有 DTO 课程。每个 MS 都包含models module 在 maven 中。

1 MS 发送 carDto 2 MS 接收 CarDto 并转换为域。为此,我可以使用多种变体:

  1. 使用库例如mapstruct
@Mapper
public interface CarMapper {
    CarMapper INSTANCE = Mappers.getMapper(CarMapper.class );
    CarDto carToCarDto(CarDomain car);
}
Run Code Online (Sandbox Code Playgroud)

并使用: …

java domain-driven-design dto microservices

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