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

使用休眠注释的文本字段

公西俊才
2023-03-14
问题内容

我在设置字符串类型时遇到麻烦,就像

public void setTextDesc(String textDesc) {
    this.textDesc = textDesc;
}

@Column(name="DESC")
@Lob
public String getTextDesc() {
    return textDesc;
}

而且它没有用,我检查了mysql模式,它仍然是varchar(255),我也尝试过,

@Column(name="DESC", length="9000")

要么

@Column(name="DESC")
@Type(type="text")

我正在尝试将类型设为TEXT,任何想法将不胜感激!


问题答案:

您说“我检查了mysql模式,它仍然是varchar(255)”-您是否希望Hibernate自动更改数据库?不会的
即使您已经hibernate.hbm2ddl.auto设置,我也不相信Hibernate会改变现有的列定义。

如果要生成新的数据库创建脚本,@Lob则在未显式指定长度的情况下(或如果长度小于65536)应生成“
TEXT”类型的列。您始终可以通过在@Column注释中显式声明类型来强制执行此操作,但请记住,这在数据库之间是不可移植的:

@Column(name="DESC", columnDefinition="TEXT")


 类似资料:
  • 问题内容: 我想使用联接表在两个表之间建立一对多关系。 最后,我想使用Hibernate批注执行此操作。 我找到了一些使用xml映射执行此操作的示例,但没有带注释的示例。 我相信这就是需要创建表的方式 问题答案: 不要寻找例子。阅读官方文档: 另外,请注意,这是单向一对多关联的默认设置。因此,如果默认的表名和列名适合您,您甚至不必提供注释。

  • 问题内容: 它为什么如此重要?根据XML映射的优势是什么?你能解释这些吗?谢谢。 问题答案: 它不是“强制性”中的重要内容。有优势和劣势的可能性是不同的。 优点: 编译时检查:如今在IDE中,用Java(而不是Xml)编写非常易于使用。启动应用程序(渐进式编译)时,没有发现 更多错别字 ,也没有什么值得记住的( 完成 )… 使用代码进行本地化(类级别):不必打开两个文件(java和xml)以获取完

  • 问题内容: 休眠注释应该放在哪里? 它是我的实例变量上方的线吗?还是在吸气剂之前?还是在二传手之前?还是真的不重要吗? 非常感谢 问题答案: 您可以将它们放在 野外 或 吸气剂上 。从《 Hibernate注释参考指南》中: 2.2.1。将POJO标记为持久实体 (…) 根据您是否注释字段或方法,Hibernate使用的访问类型将是字段或属性。EJB3规范要求您在将要访问的元素类型上声明注释,即,

  • 问题内容: 有一个结构。我想以这种方式链接这三个实体:公司应包含ID,公司名称和部门列表,每个部门都有一个工人列表,ID和部门名称。每个工人都有名字,身份证。 我试图与一对多和多对一建立联系,但未成功。 公司 部门 工人 我从开始: 它填充公司,但不填充其他表,也没有创建任何联接(映射)错误: 问题答案: 除了Glenn Lane的答案中提到的级联,您还需要了解双向关联是如何工作的。 它们有一个所

  • 问题内容: 我的Java模型上有一个枚举类型,我想映射到数据库中的表。我正在使用休眠注释,但我不知道该怎么做。由于我搜索的答案比较旧,我想知道哪种方法最好? 提前致谢 问题答案: 除了注释,您还需要其他东西吗?例如,以下枚举: 可以这样使用和注释: 您可以使用批注的enum属性指定枚举应如何在数据库中持久化。指定该枚举将作为整数值保留。在这里,设置为将永久保存为0,保留为1,依此类推。 替代方法是

  • 问题内容: 在我见过的Java类中 用于什么目的 问题答案: 来自维基百科: 数据库实例的 数据库目录 由元数据组成,其中存储了数据库对象的定义,例如基本表,视图(虚拟表),同义词,值范围,索引,用户和用户组。 另外,如果您的数据库是MySQL,请检查此内容。 希望能有所帮助。