gpt4 book ai didi

Hibernate/JPA - 可以同时使用@Id 和@EmbededId 吗?

转载 作者:行者123 更新时间:2023-12-05 05:28:06 26 4
gpt4 key购买 nike

我对在我的实体映射中添加业务键有点困惑。所有实体都使用 Long 作为 Id,但现在我必须创建一个复合 Id,我的疑问是,我可以将 @Id 和 @EmbeddedId 混合在一起,还是只有嵌入对象必须是单独的 Id?

代码如下:

@MappedSuperclass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractEntity implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6891295574206401221L;

@Id
@GenericGenerator(
name = "seq_id",
strategy = "br.com.alianca.customerservicemacros.entity.AliancaSequenceGenerator")
@GeneratedValue(generator = "seq_id")
private Long id;

@Column(name = "dt_created")
private Date created;

@Column(name = "dt_altered")
private Date altered;

可嵌入类:

@Embeddable
public class DacsInfo implements Serializable {
/**
*
*/
private static final long serialVersionUID = 5960251258518073347L;

/**
* Código Docsys do Navio
*/
@Column(name = "COD_VESSEL", length = 4)
private String vessel;

/**
* Código do navio.
*/
@Column(name = "NUM_VOYAGE", length = 5)
private String voyage;

/**
* Primeiros 4 digitos do código do <code>BLUI</code>.
*/
@Column(name = "PREFIX_BLUI", length = 4)
private String prefixBlui;

/**
* Número universal do BL.
*/
@Column(name = "NUM_BLUI", length = 12)
private String blui;

这里是最终的实体:

@Entity
@Table(name = "FATO_DACS_REPT", schema = "u_cs_service")
public class FatoDacsRept extends AbstractEntity {

/**
*
*/
private static final long serialVersionUID = 9148311315020469420L;

@EmbeddedId
private DacsInfo dacsInfo;

@Column(name = "DAT_INPUT")
private Date loading;

/**
* Código da companhia (Hamburg Sud - 699 / Aliança - 690)
*/
@Column(name = "COD_COMPANY", length = 4)
private String company;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "fatoDacsRept")
private List<FatoDacsReptChq> pendencias;

最佳答案

我认为不是...

JPA 2.0 最终规范第 373 页:

11.1.15 EmbeddedId 注解

...

使用EmbeddedId注解时必须只有一个EmbeddedId注解,不能有Id注解。

...

关于Hibernate/JPA - 可以同时使用@Id 和@EmbededId 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com