@Entity
@Table(name = "persons")
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Enumerated(EnumType.STRING)
@Column(name = "occupation")
private Occupation occupation;
@Basic(optional = false)
@Column(name = "address")
private String address;
}
我试图坚持这个对象并且我一直得到这个例外:
引起:java.lang.IllegalArgumentException:Object:com.entity.Person(id [null]占用[null]地址[" Toronto"]不是已知的实体类型。
我试图查看这个例外,但解释是让我理解模糊的方式。我是JPA的新手
任何人都可以帮助我。
P.S。我确实有吸气剂和二传手
提前致谢。
答案 0 :(得分:1)
在课前放置@Entity注释,并为所有字段生成getter和setter ...尝试查找任何示例/教程。
答案 1 :(得分:1)
必须满足以下条件,以便JPA提供商找到您的实体。
对于Web应用程序(应用程序在应用程序服务器中运行),只需标记具有@Entity
注释的实体,并确保在您的persistence.xml中是不设置:<exclude-unlisted-classes>true</exclude-unlisted-classes>
对于标准Java SE应用程序,您必须在persistence.xml或引用的orm.xml中列出您的类。
答案 2 :(得分:0)
如果尚未在persistence.xml中添加orm.xml映射文件或未使用@Entity。
<mapping-file>META-INF/orm.xml</mapping-file>
然后将以下标记添加到同一文件或使用的@Entity
<exclude-unlisted-classes>false</exclude-unlisted-classes>
答案 3 :(得分:0)
如果您要创建一个POJO,然后将其保存在存储库中,请确保您没有像这样创建POJO:
Student student = new Student() {{ setName(xxx);setAge(xxx); }};
此语句将创建一个Student
的匿名子类,并且该子类没有@Entity
注释,因此Hibernate无法识别。