如何在实体中获取嵌入式Id列的自动生成ID

时间:2017-01-17 06:09:36

标签: entity-framework hibernate orm hibernate-mapping

在我的实体员工中,我有嵌入式ID EmployeeId 包含2个长属性。我希望两个属性都生成自动增量ID。我怎样才能实现它。

员工实体

@Entity
@Table(name="emp")
public class Employee {

@EmbeddedId
private EmployeeId id;

@Column(name="Emp Name")
private String name;
//Getters and Setters

EmployeeId实体

@Embeddable
public class EmployeeId implements Serializable{

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Emp Id")
private long id;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="Branch Name")
private long branchName;
//Getters and Setters

我还尝试将@Id放在Getter上以使其正常工作,但它没有帮助。

配置。

<hibernate-configuration>  

<session-factory>  
//properties
<mapping class="com.hibernate.model.Employee"/>  
<mapping class="com.hibernate.model.EmployeeId"/>  
</session-factory>  

</hibernate-configuration>

1 个答案:

答案 0 :(得分:0)

只需将下面的代码放在您想要的列之前。

[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]