我使用Hibernate ddl生成SQL来生成实体的表(我想。)无论如何,有hashcode
字段。我的问题是:
Id
字段的常规哈希
以后会让自己有些悲伤? (我想我从中得到了这个想法
'有效的java'。)答案 0 :(得分:0)
表中不应该有hashCode字段。如果Hibernate在类层次结构(超类)中的某处生成了这样的字段,则会定义一个hashCode字段。尝试找到它并将其标记为@Transient。 Hibernate忽略Object.class的所有字段。
如果我为所有序列化实体编写了一个映射的超类来执行实体的Id字段的常规哈希,那么我以后会不会感到悲伤? (我想我从'有效的java'那里得到了这个想法。)
因为你以后很容易受到这种情况的影响:-)。不要使用这样的字段,除非您不得不喜欢使用特殊实例,在实例创建时分配随机hashCodes,在实体的整个生命周期中保持一致(包括db-life)。