Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate/JPA-可以同时使用@Id和@EmbeddeId吗?_Hibernate_Jpa_Key_Composite - Fatal编程技术网

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

Hibernate/JPA-可以同时使用@Id和@EmbeddeId吗?,hibernate,jpa,key,composite,Hibernate,Jpa,Key,Composite,在实体映射中添加业务密钥,我有点困惑。所有实体都使用Long作为Id,但现在我必须创建一个复合Id,我的疑问是,我可以将@Id和@EmbeddedId混合在一起,还是只有嵌入的对象必须是单独的Id 代码如下: @MappedSuperclass @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) public abstract class AbstractEntity implements Serializable { /** *

在实体映射中添加业务密钥,我有点困惑。所有实体都使用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;
@实体
@表(name=“FATO\u DACS\u REPT”,schema=“u\u cs\u服务”)
公共类FatoDacsRept扩展了AbstractEntity{
/**
* 
*/
私有静态最终长serialVersionUID=9148311315020469420L;
@嵌入ID
私人达辛福达辛福;
@列(name=“DAT\U输入”)
私人日期加载;
/**
*Código da compania(汉堡南部-699/阿利安萨-690)
*/
@列(name=“COD_COMPANY”,长度=4)
私人弦公司;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“fatoDacsRept”)
私人名单;
我想不是

JPA 2.0最终规范第373页:

11.1.15嵌入式ID注释

当使用EmbeddedId注释时,必须只有一个EmbeddedId注释,并且没有Id注释