在java实体表中插入测试数据

时间:2013-09-29 19:23:45

标签: java hibernate hashcode superclass

我使用Hibernate ddl生成SQL来生成实体的表(我想。)无论如何,有hashcode字段。我的问题是:

  1. 该字段是否必要?
  2. 如果我使用SQL在表中插入测试数据,我该怎么设置 价值?从我在这里阅读,本机java实现使用 内存地址提供哈希函数? (Java -- Object.hashCode() algorithm
  3. 如果我为所有要继承的序列化实体编写了一个映射的超类 我会执行实体Id字段的常规哈希 以后会让自己有些悲伤? (我想我从中得到了这个想法 '有效的java'。)

1 个答案:

答案 0 :(得分:0)

表中不应该有hashCode字段。如果Hibernate在类层次结构(超类)中的某处生成了这样的字段,则会定义一个hashCode字段。尝试找到它并将其标记为@Transient。 Hibernate忽略Object.class的所有字段。

  

如果我为所有序列化实体编写了一个映射的超类来执行实体的Id字段的常规哈希,那么我以后会不会感到悲伤? (我想我从'有效的java'那里得到了这个想法。)

因为你以后很容易受到这种情况的影响:-)。不要使用这样的字段,除非您不得不喜欢使用特殊实例,在实例创建时分配随机hashCodes,在实体的整个生命周期中保持一致(包括db-life)。