我得到了以下异常,并且在此之前已经执行了1000次,但现在我得到了错误:
ValidationException异常说明:[class Com.SmartPhoneDev.RSVPLaw.Entities.Staff]将非实体[class Com.SmartPhoneDev.RSVPLaw.Entities.Address]用作关系属性[字段地址]中的目标实体。
以下是所讨论的实体。有人能帮我找出我的关系有什么问题吗?
<code>
@Entity
@Table(name="address")
public class Address implements Serializable,
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name="addressType")
@Enumerated(EnumType.ORDINAL)
private AddressType addressType;
@Column(name="streetLineOne")
private String streetLineOne;
@Column(name="streetLineTwo")
private String streetLineTwo;
@Column(name="city")
private String city;
@Column(name="adState")
private String state;
@Column(name="postCode")
private String postCode;
@OneToMany(fetch=FetchType.LAZY, targetEntity=PhoneNumber.class, cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH},orphanRemoval=true)
@JoinColumn(name="phoneNumbers")
private Collection<PhoneNumber> phoneNumbers;
…..
}
@Entity
@Table(name="staff")
public class Staff implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
//private Profile profile;
@OneToOne(fetch=FetchType.LAZY,cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH})
@JoinColumn(name="permission")
private Permission permission;
@OneToOne(fetch=FetchType.LAZY,cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH})
@JoinColumn(name="login")
private Login login;
@Column(name="firstName")
private String firstName;
@Column(name="surnameName")
private String surnameName;
@Column(name="emailAddress")
private String emailAddress;
@OneToMany(fetch=FetchType.LAZY, targetEntity=PhoneNumber.class, cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH},orphanRemoval=true)
@JoinColumn(name="phoneNumbers")
private Collection<PhoneNumber> phoneNumbers;
@OneToMany(fetch=FetchType.LAZY, targetEntity=Address.class, cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH},orphanRemoval=true)
@JoinColumn(name="addresses")
private Collection<Address> addresses;
}
</code
@Column(name="numberType")
@Enumerated(EnumType.ORDINAL)
private PhoneNumberType numberType;
@Column(name="phoneNumber")
private String phoneNumber;
}
</code>
添加persistance.xml
<code>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="RSVPLawServerPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/RSVPLaw</jta-data-source>
<class>com.smartphonedev.rsvplaw.entities.PhoneNumber</class>
<class>com.smartphonedev.rsvplaw.entities.Address</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>NONE</shared-cache-mode>
<validation-mode>CALLBACK</validation-mode>
<properties>
<property name="eclipselink.target-server" value="SunAS9"/>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
<code>
我在将一个@ManyTomany
关系拆分为两个@OneTomany/@ManyToOne
关系时也遇到了同样的情况,我解决了这个问题。以下是一些小贴士,总结了以上所有的答案和我的发现:
@entity
并且具有正确的表(Name=xxx)
。persistence.xml
中。如果使用Hibernate,请确保它在Hibernate.cfg.xml
中。如果两者都使用,则在两个文件中使用。mappedby=
,但必须确保属性名称在整个项目中是唯一的!就像我的情况一样:如果我删除了@OneTomany
端的MappedBy
(而@ManyToOne
端是@ManyTomany
关系的中间类,它有自己的字段,所以我必须将其设为@Entity
而不是直接使用中间表),EclipseLink会抱怨一个不存在的名为“EntityA_MiddleEntity”的表。我猜想,当遇到mappedby=xxx
时,EclipseLink查找所有具有名为xxx
字段的实体,并且当它存在于多个类中,并且其中一个类是@manytomany
的中间类时,它将无法将它们关联起来。所以我在中类中更改了属性名,所有工作都很好。
我使用的是Netbeans IDE 8.0.2和eclipselink 2.5.2。下面是打开连接时出现的异常,问题是这种情况并不是每次都发生。异常“Departmento”中描述的实体完全遵循其他类的模式,即我们的系统已经包含大约500个实体类,只有在新的类中才发生此异常。这个实体是由Netbeans的“实体类从数据库”选项生成的,并添加到持久化XML... 由:javax.Persistenc
我不熟悉Hibernate和JPA,正在尝试连接一个电影、评分员和评分的数据库。我一直收到由org.hibernate引起的错误。注释异常:通过引用映射未知目标实体属性:com.stephenalexander.projects.movierecommender.rating.rating。com.stephenalexander.projects.movierecommender.movie.m
我第一次使用Hibernate,并且很难让它与我的模式一起工作。 我得到了"org.hibernate.注释异常:映射通过引用未知的目标实体属性:学生。教师在Faculty.all学生”。 一些学生共用一个导师。因此,我认为学生和教师的关系是多对多的,但我被告知这是多对多的关系。 Student.java Faculty.java 数据库架构: 在看了留档后,我尝试了几种不同的注释,但我看不出我做
问题内容: 我在被注释的对象中建立一对多关系时遇到问题。 我有以下几点: 然后这个 和这个 我在这里做错了什么 问题答案: 该属性正在引用,而该属性是,因此出现错误消息。因此,请将您的映射更改为: 或者将实体属性更改为(这就是我要做的)。 mapledBy参考指示“在我有一个用于查找配置的集合的东西上查找名为’customer’的bean属性。”
我有两个实体,其中一个我正在使用一个用户输入的PK。 我在启动springboot应用程序时遇到以下异常。 我的实体类如下所示。 我无法弄清楚代码中的问题。
我使用ASP.NETCore创建了一个Web API,并使用swagger创建留档。我使用APIendpoint上的XML注释在留档中提供附加信息。swagger配置是: 我的一个APIendpoint及其XML注释是: 是一个单独的类,它是APIendpoint所需参数的包装器。 此 API 终结点的 swagger 文档将 VisitorSearchCriteria 的所有属性显示为参数,但它