- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在将 jpa 与 play 框架一起使用。我有一个实体 JobseekerDetails
@Entity
public class JobseekerDetails {
@Id
@Column(name = "jobseekerDetails_id", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long jobseekerDetails_id;
@ManyToOne
@JoinColumn(name = "basicEducation_id")
private JobseekerFormBasicEducation basicEducation;
@ManyToOne
@JoinColumn(name = "masterEducation_id")
private JobseekerFormMasterEducation masterEducation;
@ManyToOne
@JoinColumn(name = "doctrateEducation_id")
private JobseekerFormDoctrateEducation doctrateEducation;
@ElementCollection
private List<String> certificateName =new ArrayList<String>();
@Column(length = 3000)
private String resume;
private Long experience;
private String skills;
private String resumePath;
@ManyToOne
@JoinColumn(name = "industry_id")
private JobseekerFormIndustry industry;
@ManyToOne
@JoinColumn(name = "functionalArea_id")
private JobseekerFormFunctionalArea functionalArea;
}
与 JobseekerFormFunctionalArea 、JobseekerFormIndustry 等其他实体具有多对一关系。这些实体具有已保存在数据库中的固定值。
保存 JobseekerDetails 时,应将其所有详细信息与相应的多对一关系 ID 一起保存,但不要保存到实体 JobseekerFormFunctionalArea 和 JobseekerFormIndustry,因为它们是预定义的
我的问题是,当我(通过我的表单)保存 JobseekerDetails 中的所有 manytoone 关系字段 ID 时,它被正确保存但是当提交我的表单时没有在任何 manytoone 关系字段中选择任何值例如,如果我没有在我的fuctionalArea_id 字段给出以下异常
org.hibernate.TransientObjectException:object references an unsaved transient instance - save the transient instance before flushing
如果我选择所有字段,详细信息将被保存,但如果我选择任何在我的模型中映射了 manytoone 的字段,那么它会给出上述异常
但是 jpa 自动设置 nullable=true 那么为什么会这样
我搜索了一下,发现这个问题可以通过添加 cascade 来解决。我添加了 cacade type Merge 但得到了上述相同的异常。
我也试过设置 nullable=true 但得到同样的错误
在设置 cascade = CascadeType.ALL 和 cascade = CascadeType.PERSIST 时,我遇到异常
PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist:
任何帮助将不胜感激
最佳答案
当您没有在表单中选择任何“basicEducation”并且您正在保存表单时,那里会出现一个 ID 为空的新对象。所以你有:
jobseekerDetails.basicEducation = new JobseekerFormBasicEducation ()
这会导致 TransientObjectException
为了避免它,你必须设置
jobseekerDetails.basicEducation=null
保存之前。
关于java - org.hibernate.TransientObjectException 如果任何多对一字段为空(或未在表单中选择),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27484985/
我有一个 ProductDescription ViewController,它从我放置在许多 ViewController 中的 ProductTable UITableView 调用。 对于 St
首先,是的,我使用的是 DistinctRootEntityResultTransformer。 我有以下(Fluent NHibernate)映射: public FirstObjectMap()
我有两个模型:Book 和 Author。每个Author有很多本书,每本书有很多作者,所以我在Author和Book之间建立了ManyToMany关系,如下所示: class Author(mode
我正在尝试映射两个具有一对一关系的类之间的关系。在互联网上查找后,似乎人们更喜欢使用多对一来映射它。 例如,有一个 Order 类和 Bill 类。比尔持有发票的 FK。 这是我为比尔绘制的 map
假设有以下实体类: public class Player { public virtual int ID { get; set; } public virtual string Name { g
我想尝试一下 dynamodb 我能够保存单个对象。现在我想尝试创建一个多对一的关联。 许多任务应附加到单个用户。 @DynamoDBTable(tableName = "User") public
所以,情况如下: 表ComputerInventory,其中包含{computerInventoryID(主键)、TagID(唯一)、名称等} 表reviewStatus,其中包含{reviewSta
我在使用 hibernate 进行多对一映射时遇到问题。我有两个表,表 A 和表 B。我在这些表之间映射了多对一关系。两个表可以一起使用,也可以单独使用。 用 Java 中的类来表示表,例如: cla
我的实体: @Entity public class Film { @Id @GeneratedValue(strategy = IDENTITY) private long film
我必须制作拼贴项目的域层。我们的标准很少,比如我们必须使用 Hibernate,而且数据库也是固定的。 数据库的相关部分看起来几乎像这样: BusEntity(表 1) 总线 ID 公交车具体信息 总
如果有这两个实体: @Entity @Table(name = "CUSTOMER") public class Customer { @Id @GeneratedValue(stra
我正在尝试找出在多对一关系中检索单个最新结果的最有效方法。 示例: 实体 A - 团队(名称)实体 B - 员工(姓名,已创建) 团队>员工 我想在 Employee 上创建一个获取请求,返回每个团队
假设我有一个MySQL表read,记录了一个userid和一个articleid,记录了用户阅读了哪些文章。我现在想列出已阅读文章 1、2 和 3 的用户。 我知道以下是不可能的,但它说明了这个想法:
我的两个实体之间存在多对一关系。现在我希望当没有更多的 child 时将 parent 移除。 我的情况: 类(class)联系人 类(class)组织 一个组织有几个联系人,每个联系人都有一个组织。
我有下表: A 和 B A 有一个复合 PK:id int,类型 string。 B 只有 A 的 PK 之一:id int。 如何使用 B 的 id 和常量 type='typeB' 定义从 A 到
我正在为我的项目使用 Hibernate 3 映射一些实体,并简单地解释说我有这样的东西: Student 实体(tstudent 表) UniversityStudent 实体(tuniversit
我有一个成员表:成员(id, name, gender, head_id) 我想要的是建立以户主(家庭成员)为基础的家庭关系。就像这样:一个成员属于一个家庭(由成员定义) 也许我可以将其拆分为 2 个
示例 父类 @OneToMany(mappedBy = "parent") private List childs; 子类 @ManyToOne(cascade = CascadeType.ALL)
我有以下化学过程数据集,由 5 个连续输入向量组成,产生 1 个输出。每个输入每分钟采样一次,而输出操作系统每 5 采样一次。 虽然我相信输出取决于之前的 5 个输入向量,但我决定为我的设计寻找 LS
我正在将我的应用程序从原则 1 转换为原则 2.4我确实从数据库自动映射,但缺少一些关系: 表:产品产品 ID、标题、价格 表:位置产品id , 产品id , 位置id , 数量 因此每个 Locat
我是一名优秀的程序员,十分优秀!