Java Jpa@OnetoOne关系
这是我的实体类作者 getter和setter&零参数构造函数 这是我的另一个实体AuthorDetail,我使用@OneToOneoptional=false,mappedBy=AuthorDetail映射了它 接球手和接球手 这是我的主课 如果我尝试运行该程序,就会出现异常Java Jpa@OnetoOne关系,java,jpa,Java,Jpa,这是我的实体类作者 getter和setter&零参数构造函数 这是我的另一个实体AuthorDetail,我使用@OneToOneoptional=false,mappedBy=AuthorDetail映射了它 接球手和接球手 这是我的主课 如果我尝试运行该程序,就会出现异常 如果想要单向关系,则不需要在两个类中都写入@OneToOne。 从给定的一段代码来看,您似乎希望在Author detail和Author之间建立双向关系 为了让另一方了解双向关系,需要将mappedBy属性添加到@On
如果想要单向关系,则不需要在两个类中都写入@OneToOne。 从给定的一段代码来看,您似乎希望在Author detail和Author之间建立双向关系 为了让另一方了解双向关系,需要将mappedBy属性添加到@OneToOne注释中。此属性引用作为关系所有者的实体中的Java属性。在您的情况下,需要在AuthorDetail类中添加 @OneToOneoptional=false,mappedBy=authority 私人作者 在mappedBy属性中,需要引用实体而不是类名。在作者中更改以下内容:
@OneToOne
private AuthorDetail authorId;
致:
您使用detailSet的目的是什么?您不应该使用新的详细信息设置作者的authId吗?请同时发布您得到的异常,因为它们有助于指出问题Sauthor author=新作者;作者:setFirstMD;作者:setLastRAHMATH;author.setBioA软件开发人员//设置细节集//detailSet=新HashSet;AuthorDetail=新的AuthorDetail;detail.setAddress1地址1;detail.setAddress2Address2;detail.setCityNoMansLand;detail.setstatez;detail.setZip12345;detail.setnotes这是测试细节;detail.setAuthoridautor;如何设置authorId的值
@Column(name = "ID")
private Long id;
@Column(name = "ADDRESS1")
private String address1;
@Column(name="ADDRESS2")
private String address2;
@Column(name = "CITY")
private String city;
@Column(name = "STATE1")
private String state;
@Column(name = "ZIP")
private String zip;
@Column(name = "START_DATE")
@Temporal(TemporalType.DATE)
private Date startDate;
@Lob
@Column(name = "NOTES")
private String notes;
@OneToOne(optional = false,mappedBy = "authorDetail")
private Author authorId;
`EntityTransaction entr=em.getTransaction();
entr.begin();
Author author=new Author();
author.setFirst("MD");
author.setLast("RAHMATH");
author.setBio("A Software Developer");
Set detailSet=new HashSet<AuthorDetail>();
AuthorDetail detail=new AuthorDetail();
detail.setAddress1("Address1");
detail.setAddress2("Address2");
detail.setCity("NoMansLand");
detail.setState("ZZ");
detail.setZip("12345");
detail.setNotes("This is test detail");
detailSet.add(detail);
em.persist(author);
entr.commit();`
@OneToOne
private AuthorDetail authorId;
@OneToOne
private AuthorDetail authorDetail;