繁体   English   中英

没有主键的表的JPA实体

[英]JPA entity for a table without primary key

我有一个没有主键的MySQL表,我必须将它映射到JPA实体。 我无法以任何方式修改表格。

因为实体必须有主键,所以我必须指定一个。 如果我确定我在实体中使用的字段(或者字段,我应该选择使用复合主键)在表中始终是唯一的(而不是null),那么表格不能没有在CREATE TABLE中指定的主键导致任何问题?

那是对的。 JPA无法知道它作为PK使用的列是否实际上是数据库中的真实PK。 如果这些列在实践中是PK,那么应该没问题。

如果伪PK列未正确编入索引,您可能会遇到一些性能问题,但JPA会在假设它运行良好的情况下对PK执行查询。

JPA本身不会分析您的数据库。 只是不要使用使用主键的常用方法(find / merge / ...)而是使用命名查询,例如使用jpql update语法。

@Entity
@Table(name = "login")
@NamedQueries({
        @NamedQuery(name = "Login.updateLastOnline", 
        query = "UPDATE Login l SET l.lastOnline = :newDate WHERE l.loginId = :loginId")
        })
public class Login implements Serializable
{

loginId是否为主键无关紧要

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM