作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对在我的实体映射中添加业务键有点困惑。所有实体都使用 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/
我对在我的实体映射中添加业务键有点困惑。所有实体都使用 Long 作为 Id,但现在我必须创建一个复合 Id,我的疑问是,我可以将 @Id 和 @EmbeddedId 混合在一起,还是只有嵌入对象必须
我是一名优秀的程序员,十分优秀!