小编BAM*_*con的帖子

Hibernate 6、Postgres 和 bytea

随着Hibernate 6的发布,我再次绞尽脑汁试图弄清楚如何让 Hibernate 将@Lob转换为PostGres数据库的bytea。我还需要可以使用 H2(或任何内存数据库)测试代码。

我正在使用 Postgres 10+ (v13),因此可以满足该要求。

这是我之前使用的,这很棘手,因为我还需要它与 H2 一起工作。(PostGres 方言仅在生产中加载,不在测试中加载。)

遗憾的是,让 bytea 工作“超出了 Hibernate 6 用户指南的范围”。见 2.2.47。 https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single/Hibernate_User_Guide.html

迁移指南似乎也没有提及这个话题。 https://github.com/hibernate/hibernate-orm/blob/6.0/migration-guide.adoc

SQLDialect 系列的整个 API 已被重写,所以我回到了方 1。

public class CustomPostgresSQL10Dialect extends PostgreSQL10Dialect{

  public CustomPostgresSQL10Dialect() {
    super();
    registerColumnType(Types.BLOB, "bytea");
  }

  @Override
  public SqlTypeDescriptor remapSqlTypeDescriptor(SqlTypeDescriptor sqlTypeDescriptor) {
    if (sqlTypeDescriptor.getSqlType() == java.sql.Types.BLOB) {
      return BinaryTypeDescriptor.INSTANCE;
    }

    return super.remapSqlTypeDescriptor(sqlTypeDescriptor);
  }
}
Run Code Online (Sandbox Code Playgroud)

java postgresql hibernate

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

如何在bash中将输出作为命令行参数传递?

我有这两步bash命令:

L=`wc -l testfile | cut -d' ' -f1`
myprogram testfile $L testfile.out
Run Code Online (Sandbox Code Playgroud)

长话短说,myprogram需要将行数作为输入.

我想把它组合成一行.

这并没有工作,因为使用的是重定向|-通行证标准输出流作为一个文件,而不是一个字符串.

wc -l testfile | cut -d' ' -f1 | myprogram testfile - testfile.out
Run Code Online (Sandbox Code Playgroud)

有没有办法将它组合成一行?

bash io-redirection

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

标签 统计

bash ×1

hibernate ×1

io-redirection ×1

java ×1

postgresql ×1