当前位置: 首页 > 面试题库 >

javax.persistence @Column上的length字段是否定义max?

丁钟展
2023-03-14
问题内容

我有以下代码:

public class Item { 
    @Column(name = "serialNo", length = 12)
    public String getSerialNo() {
        return this.serialNo;
    }

    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }
}

但是,数据库架构将列定义为长度为13。通过以下方式检索项目时:

List<Item> items = getEntityManager().createNamedQuery(SQL).getResultList();

具有数据serialNo将字符等于13(因为分贝表模式允许13)仍然被显示为13,不会被截断。那么有什么用@Column length


问题答案:

javax.persistence.Columnlength属性用于定义String字段的列长(其他类型将忽略该属性),
在持久性框架将从CREATE TABLE实体生成数据库架构(几个)时使用,例如此选项(对于Hibernate on
hibernate.cfg.xml):

<property name="hbm2ddl.auto">create</property>

在您的示例中,该列serialNo将创建为VARCHAR(12)

出于所有其他目的(插入或检索数据),它将被 忽略

另外,如果您要在类中 “记录” 数据库的 元数据信息 ,这将很有用。这样一来, 自己 可以尝试插入并避免任何之前验证待保存的值
“值太长”“数据截断” 般的例外。



 类似资料:
  • 我们在 field 对应的 Tag 中对 Column 的一些属性进行定义,定义的方法基本和我们写SQL定义表结构类似,比如: type User struct { Id int64 Name string `xorm:"varchar(25) notnull unique 'usr_name' comment('姓名')"` } 对于不同的数据库系统,数据类型其实

  • 介绍 model 参考文档已经介绍了如何使用 Django 的标准字段类;例如 CharField, DateField,等等。对于很多应用来说,这些类足够用了。 但是在某些情况下, 你所用的Django 不具备你需要的某些精巧功能,或是你想使用的字段与 Django 自带字段完全不同。 Django 内置的字段类型并不能覆盖所有可能遇到的数据库的列类型,仅仅是些普通的字段类型,例如VARCHAR

  • 我在修改我安装的WordPress流行帖子插件时遇到了一些问题。 它可以选择从自定义字段获取缩略图,我已将其输入为“image_facebook”。但是缩略图没有显示。 在检查代码时,我发现imgsrc有post id而不是返回图像URL。 我已经把问题缩小到我安装的另一个插件http://wordpress.org/plugins/advanced-custom-fields/ 当它处于活动状态

  • 问题内容: 以下三个字段的有效性检查之间有什么区别? 我读到第一个与DDL有关。第二个是用于bean验证的。第三是用于hibernate验证。 那是对的吗?我仍然不明白的是:我什么时候必须使用哪个?这些注释之一何时触发? 编辑:考虑以下情况:考虑到需要开发一个长度为string类型的字段(长度为13)的实体,您会选择上述哪种方法?甚至更好:您必须问自己哪些问题才能找出适合您目的的一个? 问题答案:

  • 下面三个字段的验证检查有什么区别? 我读到第一个与DDL有关。第二个是bean-验证。第三个是Hibernate-Validation。 那是正确的吗?我至今不明白的是:我什么时候必须用哪一个?这些注释中的一个何时触发? 编辑:考虑以下情况:给定开发具有长度为13的字符串类型字段的实体的需求。以上提到的方法你会选择哪一种?或者更好:你必须问自己哪些问题才能找出哪一个适合你的目的?

  • 从GraphQL/Node/Express/Types cript堆栈开始,我遇到了一个问题,即字段参数没有传递给解析器函数。我有两个查询: 用户列表: 和用户: 如果没有提供条件,函数默认显示所有用户。但是,请考虑以下查询和结果: 显然,userIsLocked没有在函数上传递fields参数。但是,以下工作: 当用户ID登录到对getById()的请求时,我在控制台中看到了“a4f1d968-