- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的一个实体的复合主键。
public class GroupMembershipPK implements Serializable{
private static final long serialVersionUID = 7816433876820743311L;
private User user;
private Group group;
public GroupMembershipPK(){
}
public boolean equals(Object o){
if(o==null){
return false;
}
if(o instanceof GroupMembershipPK){
final GroupMembershipPK groupMembershipPK=(GroupMembershipPK)o;
return groupMembershipPK.group.getGroupName().equals(this.group.getGroupName()) &&
groupMembershipPK.user.getName().equals(this.user.getName());
}
return false;
}
public int hashCode(){
return super.hashCode();
}
}
@Entity
@IdClass(GroupMembershipPK.class)
public class GroupMembership extends AbstractModelElementVersionOther{
private static final long serialVersionUID = 9188465566607060376L;
private String memType;
private Group group;
private User user;
public GroupMembership(){
super();
}
@Column(nullable=false)
public String getMemType(){
return this.memType;
}
public void setMemType(String memType){
this.memType=memType;
}
@Id
@ManyToOne
@JoinColumn(name="groupId")
public Group getGroup(){
return this.group;
}
public void setGroup(Group group){
this.group=group;
}
@Id
@ManyToOne
@JoinColumn(name="userId")
public User getUser(){
return this.user;
}
public void setUser(User user){
this.user=user;
}
@Override
public boolean equals(Object o) {
//
最佳答案
将实体存储为主键不是一个好主意。使用查询语言时有一些限制,JPA 1.0 不支持。除此之外,不需要使用实体作为主键。想一想,如果你愿意,可以专门看下面这个问题
A class that behaves like @Entity and @Embeddable
Answer one
Comment about answer one
您将看到不需要使用实体作为主键。
代替
public class GroupMembershipPK implements Serializable {
private User user;
private Group group;
}
public class GroupMembershipPK implements Serializable {
private Integer userId;
private Integer groupId;
}
public boolean equals(Object o) {
if(o == null)
return false;
if(!(o instanceof GroupMembershipPK))
return false;
GroupMembershipPK other = (GroupMembershipPK) o;
if(!(getUserId().equals(other.getUserId()))
return false;
if(!(getGroupId().equals(other.getGroupId()))
return false;
return true;
}
User user = new user();
Group group = new Group();
entityManager.save(user);
entityManager.save(group);
entityManager.flush();
UserGroup userGroup = new UserGroup();
userGroup.setId(new UserGroup.UserGroupId(user.getId(), group.getId()));
entityManager.save(userGroup);
public class UserGroup {
private UserGroupId id;
// You can create UserGroupId outside UserGroup class
// Feel free to choice your best approach
@Embeddable
public static class UserGroupId implements Serializable {
private Integer userId;
private Integer groupId;
// required no-arg constructor
public UserGroupId() {}
public UserGroupId(Integer userId, Integer groupId) {
this.userId = userId;
this.roupId = groupId;
}
// getter's and setter's
// equals and hashcode as shown above
}
@EmbeddedId
public UserGroupId getId() {
return this.id;
}
public setId(UserGroupId id) {
this.id = id;
}
}
关于jpa - @IdClass JPA 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1468498/
我的类Class1Item是对Class1中条目的引用。 Hibernate 需要我定义一个@IdClass。使用 Class1 的 Id 定义自己的类对我来说不起作用。 这是我收到的错误: org.
这是我的一个实体的复合主键。 public class GroupMembershipPK implements Serializable{ private static final long
我使用 spring boot 2、jpa 和 hibernate 用这个代码 @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE
如果你有一个类似的 IdClass public class EmployeePK implements Serializable { private String empName; privat
如何在多重继承实体组合键情况下使用IdClass? @IdClass(IdClassEntity1.class) class Entity1 { private long e1
我有一个 Evaluation 实体,它具有关联的 EvaluationEvaluator 列表。我需要显式创建该实体,因为它需要一个额外的列“STATUS”。在我继续评估之前。我这样做:evalua
我有以下模型(一个更大模型的非常简化的版本) public enum EntityType { DOG, HAMMER } @Entity public class Entity {
在我的项目中,实体的结构如下。 public class FriendId { private String profileFrom; private String profileTo
我正在尝试将复合主键添加到类中,但遇到了一些麻烦。这是类。 class User { private long id; ... } class Token { private
我有以下设置: @Entity @IdClass(MemberAttributePk.class) public class MemberAttribute { @Id @ManyTo
我有 3 个具有多对多关系的表 A(id,名称,...)主键id B(id,名称,...),带有主键id AB (id_a, id_b, date, ....) - 关系表,否主键 我可以为 hibe
我正在使用 JPA 实体实现以下表结构,其中显示的属性代表 PK/FK 列。 protocolId 是自动生成的,并在调用 persist() 之前在所有实体中设置为 null。整个结构被立即存储。
我有一个名为 EmployeeDepartment 的实体,如下所示 @IdClass(EmployeeDepartmentPK.class) //EmployeeDepartmentPK is a
我的任务是准备一个报价搜索屏幕。我已经提到了Oracle View 创建报价模型。由于 View 表中没有 id 列,因此我更喜欢通过 quoteId.class 使用 @IdClass 注释来使用复
如果您有一个用户实体,您可以通过两种方式存储他/她的地址。您可以直接将所有字段存储在用户对象中 - 或者 - 您可以创建一个地址对象,该对象保存在单独的表中并连接到用户(或级联,或其他),然后放入用户
当我在 JPA 中为具有复合键的实体使用 Idclass 时,我编写了一个删除方法,如: private static void removeEmployee(Employee employee) {
我有以下实体: @Entity @Data @IdClass(ProjectEmployeeId.class) public class ProjectEmployee { @Id @Many
在部署我的应用程序期间,我遇到了那个异常。我的应用程序中有很多类,但我不知道必须在哪里放置 @IdClass 以及这个异常到底意味着什么。我正在使用 Hibernate 4.1 和 JBoss AS
我的id类如下, public class EmployeeId implements Serializable{ public EmployeeId(){} public Emplo
@Entity @IdClass(MyPK.class) public class SubEntity { @Id private int id; @Id private String
我是一名优秀的程序员,十分优秀!