【发布时间】:2010-09-13 18:22:39
【问题描述】:
我有一个 Java 程序,它使用 Hibernate 和 MySQL 来存储大量有关 Eclipse IDE 使用情况的跟踪数据。这个数据包含很多字符串,比如方法名、目录、透视名等。
例如,一个事件对象(然后反映在一条记录中)可以指定源文件和当前方法、用户名等。显然,字符串数据可以重复自身。
只要它在内存中,它的大部分就会被内部化,因此所有重复的字符串实例都指向同一个对象(我确保这一点)。但是,使用@Basic(我使用注解),Hibernate 将其映射为 VARCHAR(255),这意味着浪费了大量空间。
如果我自己编写 SQL,我可以将 VARCHAR 替换为手动管理的字符串查找表的索引并节省空间(以额外查找为代价)。
有什么方法可以让 Hibernate 为我做这件事吗?我愿意为空间的性能损失付出代价。
【问题讨论】: