相关疑难解决方法(0)

二进制Blob截断为8000字节 - SQL Server 2008/varbinary(max)

我已经使用Nhibernate 2.1从Fluent Nhibernate 1.0升级到使用NHibernate 3.0 GA预发布1.x并且达到了我认为的回归,但我想知道是否确实如此.

我使用的是SQL Server Express 2008和MSSQL 2008方言,并且具有System.Drawing.Image类型的Image属性,我已将其映射为:

Map (food => food.Image)
 .Length (int.MaxValue)
 .Nullable ();
Run Code Online (Sandbox Code Playgroud)

Image表中的列是类型varbinary(MAX).

生成的属性的hbm是:

<property name="Image" type="System.Drawing.Image, System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
   <column name="Image" length="2147483647" not-null="false" />
</property>`
Run Code Online (Sandbox Code Playgroud)

但是无论我做什么,当使用当前的FNH和NH版本序列化时,二进制blob被截断为8000字节.以前的版本不是这种情况.

想法为什么会这样,以及如何解决/解决它?

nhibernate fluent-nhibernate sql-server-2008-express

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

在 Spring JPA 中使用 BigInteger 作为主键给出 - 列“id”的列说明符不正确

我想要一个不定式主键,那就是BigInteger. https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-type-conversions.html

BIGINT[(M)] [UNSIGNED]  BIGINT [UNSIGNED]   java.lang.Long, if UNSIGNED java.math.BigInteger
Run Code Online (Sandbox Code Playgroud)

所以我创建了我的 entity

public class Alarm {

    // ID
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private BigInteger id;
Run Code Online (Sandbox Code Playgroud)

当我创建表时,出现以下错误。

org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table alarm (id decimal(19,2) not null auto_increment, frequencyp0p1p2 integer not null, frequencyp3p7p8 integer not null, frequencyp4 integer not null, frequencyp6p5 integer not null, port_description varchar(255), primary key (id)) engine=MyISAM" via JDBC Statement

Caused by: java.sql.SQLSyntaxErrorException: Incorrect column specifier for column 'id'
Run Code Online (Sandbox Code Playgroud)

那么这里出了什么问题呢?

java hibernate spring-data-jpa spring-boot

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