Java 设计这个类时要牢记ORM
我有一个由6个属性组成的对象,其中5个唯一地定义(而不是派生)第6个属性:Java 设计这个类时要牢记ORM,java,oop,orm,Java,Oop,Orm,我有一个由6个属性组成的对象,其中5个唯一地定义(而不是派生)第6个属性: public Class MyClass { private FirstAttribute first; private SecondAttribute second; private ThirdAttribute third; private FourthAttributeEnum fourth; private FifthAttribut
public Class MyClass {
private FirstAttribute first;
private SecondAttribute second;
private ThirdAttribute third;
private FourthAttributeEnum fourth;
private FifthAttributeEnum fifth;
private SixthAttribute uniquelyDefined;
}
我需要将这个类的对象存储在关系数据库中。对于前5个属性的所有唯一组合,第六个属性的值都会发生变化(对于不同的组合,它可能是相同的,但没有关系,因此第六个属性不能作为主键)
作为主键,我定义了另一个字符串,它结合了前5个属性的字符串表示
我正在寻找这个案例的更好的实现。重组这个类的最佳方式是什么
作为主键,我定义了另一个组合字符串的字符串
前5个属性的表示
这可能是极少数情况下首选代理主键而非自然主键的情况之一。“兆字节长”主键不是一个好主意,因为它们通常在应用程序中使用(其他表、实体内存表示等)。由于索引将增长,您还将减慢查找操作。表读取速度可能会减慢,因为行太大。前5个属性的组合如何成为主键?你不能有像{1,2,3,4,5-1}和{1,2,3,4,5-2}这样的东西吗?@Pras不,这在我的情况下是不会发生的。每个对象的前五个属性都有不同的组合。好的,首先我喜欢“技术PK”的概念。。我不会混合使用业务属性来生成主键,但肯定会生成一个新的列(字符串或Long,或者记住ORM映射库(如Hibernate)会自动为您生成PK)。。。然后,只需在前5个属性上添加唯一约束