JPA - 如何在DDL中将字符串列设置为varchar(max) [英] JPA - How to set string column to varchar(max) in DDL

查看:244
本文介绍了JPA - 如何在DDL中将字符串列设置为varchar(max)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 JPA ,属性的DDL代:

  @Column 
final String someString;

将会是 someString varchar(255)null

  @Column(length = 1337)
final String someString;

会产生 someString varchar(1337)null



但是我怎样才能得到 someString varchar(max)null



有可能使用长度 -attribute,或者是否需要使用 columnDefinition -attribute?

解决方案

$ b $有些月份已经过去了,新的知识被收购了,所以我会回答我自己的问题: b

  @Lob 
@Column
final String someString;

会产生最正确的结果。使用我使用的 hbm2ddl 版本,它将转换为文本类型,其中 SqlServerDialect 。由于 varchar(max)取代 text 更新版本的 SQL Server ,希望有更新的版本 hbm2ddl 会产生 varchar(max)而不是 text 对于这种类型的映射(我暂时停留在一个相当过时的Hibernate版本中)。

With JPA, DDL-generation for the attribute:

@Column
final String someString;

will be someString varchar(255) null

@Column(length = 1337)
final String someString;

will yield someString varchar(1337) null.

But how can I get it to produce someString varchar(max) null?

Is it possible using the length-attribute, or do I need to use the columnDefinition-attribute?

解决方案

Some months have passed, new knowledge acquired, so I'll answer my own question:

@Lob
@Column
final String someString;

yields the most correct result. With the version of hbm2ddl I'm using, this will be transformed to the type text with SqlServerDialect. Since varchar(max) is the replacement for text in newer versions of SQL Server, hopefully, newer versions of hbm2ddl will yield varchar(max) instead of text for this type of mapping (I'm stuck at a quite dated version of Hibernate at the moment..)

这篇关于JPA - 如何在DDL中将字符串列设置为varchar(max)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆