小编tob*_*obi的帖子

尝试从JDBC元数据中解析外键元数据无法找到外键的列映射

hibernate在第一次运行时正确创建并填充数据库.在第二轮,我得到以下错误.

Hibernate 5.2.0和Oracle 12c.这是一个错误吗?当我谷歌这个时,我几乎找不到任何信息.

    @ManyToOne
    @JoinColumn(name="fk_report")
    @ForeignKey(name="fk_report")
    private Report report;
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Initial SessionFactory creation failed.org.hibernate.tool.schema.spi.SchemaManagementException: Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key named [FK_REPORT]
Exception in thread "main" java.lang.ExceptionInInitializerError
    at bo.agi.config.HibernateUtil.buildSessionFactory(HibernateUtil.java:30)
    at bo.agi.config.HibernateUtil.<clinit>(HibernateUtil.java:12)
    at bo.agi.documentation.ReportDocumenter.doReportDocumentation(ReportDocumenter.java:124)
    at bo.agi.documentation.BO_Exporter.main(BO_Exporter.java:237)
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Attempt to resolve foreign key metadata from JDBC metadata failed to find column mappings for foreign key named [FK_REPORT]
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl$ForeignKeyBuilderImpl.build(InformationExtractorJdbcDatabaseMetaDataImpl.java:727)
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl$ForeignKeyBuilderImpl.build(InformationExtractorJdbcDatabaseMetaDataImpl.java:708)
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getForeignKeys(InformationExtractorJdbcDatabaseMetaDataImpl.java:691)
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.foreignKeys(TableInformationImpl.java:88)
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.getForeignKey(TableInformationImpl.java:99)
    at …
Run Code Online (Sandbox Code Playgroud)

ddl hibernate

6
推荐指数
2
解决办法
3132
查看次数

有条件的@Autowired?

我有一个我自动装配的 HsqldbReconciler(用于与 HSQLDB 数据库“工作”),例如:

@Autowired
HsqldbReconciler hsqldbReconciler;
Run Code Online (Sandbox Code Playgroud)

将来会有 OracleReconciler、MssqlReconciler 等。我需要根据用户选择的连接类型来使用它们。

我应该如何实施?通常我会有一种工厂,它只返回所需的协调器。我目前可以想象,spring 的唯一方法是自动装配每个 Reconciler 的一个实例,然后在代码中使用其中一个。有没有更好的办法?

spring factory autowired

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

JPA,为什么不替换本机查询中的命名参数?

我尝试了索引和命名参数,但它不起作用:

public interface CharacterRepository extends JpaRepository<Character, Long> {
    @Query(nativeQuery=true, value="SELECT * FROM Character WHERE pinyin like '%:keyword%'")
    List<Character> findByKeyword(@Param("keyword") String keyword);
}
Run Code Online (Sandbox Code Playgroud)

输出的sql是:

休眠:

   SELECT
        * 
    FROM
        Character 
    WHERE
        pinyin like '%:keyword%'
Run Code Online (Sandbox Code Playgroud)

为什么关键字占位符没有被我实际传递的参数替换?

parameters spring jpql spring-data-jpa

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

如何使用 Spring Boot 流式传输音频

我想让用户播放声音。我的实现在 Firefox 中运行良好。在 Safari 上不播放声音。我证实,音频控制在 safari 中与其他网站一起工作。所以,我假设,我必须在我的控制器中改变一些东西?

控制器:

@RequestMapping(value = "/sound/character/get/{characterId}", method = RequestMethod.GET, produces = {
            MediaType.APPLICATION_OCTET_STREAM_VALUE })
        public ResponseEntity playAudio(HttpServletRequest request,HttpServletResponse response, @PathVariable("characterId") int characterId) throws FileNotFoundException{

        logger.debug("[downloadRecipientFile]");

        de.tki.chinese.entity.Character character = characterRepository.findById(characterId);
        String file = UPLOADED_FOLDER + character.getSoundFile();

        long length = new File(file).length();


        InputStreamResource inputStreamResource = new InputStreamResource( new FileInputStream(file));
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentLength(length);
        httpHeaders.setCacheControl(CacheControl.noCache().getHeaderValue());
        return new ResponseEntity(inputStreamResource, httpHeaders, HttpStatus.OK);
    }
Run Code Online (Sandbox Code Playgroud)

看法

        <audio id="voice" controls="">
            <source src="/sound/character/get/2">
        </audio>
Run Code Online (Sandbox Code Playgroud)

火狐(工作正常): 火狐(工作正常)

Safari(不工作): Safari(不工作!)

html audio spring-mvc stream spring-boot

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