我有 2 个类,一个是Student.class(Embedded)
,另一个是CommonDetails.class(Embeddable)
。我想创建一个学生表,其中 id、姓名、电子邮件和 id 字段作为标识符。
但它抛出此异常:
No identifier specified for entity: com.icore.mint.data.customer.service.usage.Student.
有什么解决方案是我不想在Student.class
中创建字段id
.我想使用CommonDetails.class.
中的id
下面是代码。
常见详情.class
@Embeddable
public class CommonDetails implements Serializable {
private static final long serialVersionUID = 1L;
String id;
String name;
String email;
//Setters and Getters
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
//toString()
@Override
public String toString() {
return "CommonDetails [id=" + id + ", name=" + name + ",
email=" + email + "]";
}
}//Class
学生.class
@Table
@Table(name="student")
public class Student implements Serializable{
private static final long serialVersionUID = 1L;
CommonDetails commonDetails;
//Setters and Getters
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "id")),
@AttributeOverride(name = "name", column = @Column(name =
"name")),
@AttributeOverride(name = "email", column = @Column(name =
"email"))
})
public CommonDetails getCommonDetails() {
return commonDetails;
}
public void setCommonDetails(CommonDetails commonDetails) {
this.commonDetails = commonDetails;
}
//toString()
@Override
public String toString() {
return "Student [commonDetails=" + commonDetails + "]";
}
}//Class
我认为您正在寻找@EmbeddedId
注释。
这是我项目的示例:
带有@Embeddable
注释的类:
@Embeddable
public class SetLogs implements Serializable{
private static final long serialVersionUID = 1L;
@Column(name="user_id")
private Integer user_id;
@Column(name="menu_id")
private Integer menu_id;
@Column(name="logs_time")
private Date logs_time;
}
带有@EmbeddedId
注释的类:
@Entity
@Table(name="logs")
public class Logs implements Serializable{
private static final long serialVersionUID = 1L;
@EmbeddedId
private SetLogs setLogs;
public SetLogs getSetLogs() {
return setLogs;
}
public void setSetLogs(SetLogs setLogs) {
this.setLogs = setLogs;
}
}
您也可以参考此链接 http://www.concretepage.com/hibernate/example-embeddedid-hibernate
希望这对您有所帮助。