【发布时间】:2016-05-11 05:26:11
【问题描述】:
假设我有以下领域模型:
users
----
id (PK)
partitionkey (PK)
在上表中,分区键主要用于分区。 (MySQL 要求 partitionkey 是主键的一部分)。如果我们假设记录只能由 id 字段唯一标识,那么在映射中跳过 partitionkey 是否有任何危害。例如,下面的映射是否有效:
@Entity
@Table(name = "users")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
public Long id;
@Column(name="partitionkey")
private Long partitionKey;
}
【问题讨论】:
-
你的桌子叫什么名字?
-
@SKP,如果答案是您想要的,请接受其中一个(至少要支持另一个)。您不能同时接受两者,但您可以对两者都投赞成票。如果答案是您想要的,这是一种公平的做法。如果不是,您能否向我们提供更多您想要的信息? :)
-
@Paulo ,表名是错字(已修复)。对于那个很抱歉。这个问题的主要目的是了解映射是否需要与数据库严格对应。在这种情况下,数据库是否可以定义复合主键,但映射只定义复合主键中的一个字段为@Id,即DB定义id、partitionkey为主键,但只有 id 在映射中用 @Id 标记
-
是的,映射已经严格对应于数据库。如果您有两列来指示主键,则必须在您的 java 类中指示。
标签: java mysql spring jpa spring-data