SQL JPA - 多列作为主键
2022-08-31 21:06:56
如果我想让 severeal Column 组成一个 ID。
SQL 示例:
CONSTRAINT [PK_NAME] PRIMARY KEY ([Column1],[Column2],[Column3])
如何使用Jpa实体类执行此操作?通过列定义 ?
只需将 id 字段设置为:
value = Column1 + Column2 + Column3 // aint working.
如果我想让 severeal Column 组成一个 ID。
SQL 示例:
CONSTRAINT [PK_NAME] PRIMARY KEY ([Column1],[Column2],[Column3])
如何使用Jpa实体类执行此操作?通过列定义 ?
只需将 id 字段设置为:
value = Column1 + Column2 + Column3 // aint working.
您需要为复合键设置一个类:
public class CompositeKey implements Serializable {
private int column1;
private int column2;
private int column3;
}
然后在实体类中使用注释:@IdClass
@Entity
@IdClass(CompositeKey.class)
public class EntityExample {
@Id
private int column1;
@Id
private int column2;
@Id
private int column3;
...
...
}
我认为这应该有效。希望它有帮助,干杯!
是的,还有另一种解决方案,@jklee提到的解决方案,两者都有效,这是一个偏好问题。
使用和 。@Embeddable
@EmbeddedId
例:
@Entity
public class Project implements Serializable {
@EmbeddedId ProjectId id;
}
@Embeddable
class ProjectId implements Serializable {
int departmentId;
long projectId;
}
更多信息请点击这里 http://www.objectdb.com/java/jpa/entity/id#Embedded_Primary_Key_