Java 如何在jpa中只保留父对象而不保留子对象?

Java 如何在jpa中只保留父对象而不保留子对象?,java,hibernate,spring-mvc,jpa,Java,Hibernate,Spring Mvc,Jpa,我有两个班:A班和B班。A班是家长,B班是孩子 现在我只想保留A,将来我还可以更新B @Entity @Table(name = "A") public class A{ @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.AUTO) private long id; } @Entity @Table(name = "N") public class B{ @ManyToOne

我有两个班:A班和B班。A班是家长,B班是孩子 现在我只想保留A,将来我还可以更新B

 @Entity
 @Table(name = "A")
 public class A{
   @Id
   @Column(name="id")
   @GeneratedValue(strategy=GenerationType.AUTO)
   private long id;
 }

 @Entity
 @Table(name = "N")
 public class B{
   @ManyToOne
   @JoinColumn(name = "id")
   private A a;
 }
当我只保留A时,我需要在A中设置B对象。如果不在A中设置B对象,则获取异常。如果在A中设置B对象,则这两个对象都是持久的


谢谢

假设您的问题的解决方案是您需要指定
A
B
之间的关系(例如
@ManyToOne

或者,如果
A
不是自己的实体,则用
@Embedded
标记它,并将
@Embedded
添加到
B
中的变量声明中

@Entity
@Table(name = "A")
@Embeddable
 public class A{
 @Id
 @Column(name="id")
 @GeneratedValue(strategy=GenerationType.AUTO)
 private long id;
}

 @Entity
 @Table(name = "N")
 public class B{


  @Embedded
  private A a;
}

您会遇到什么异常?当您遇到异常时,您是如何尝试保存对象的?org.hibernate.TransientObjectException:对象引用了一个未保存的临时实例-在刷新之前保存临时实例您何时会遇到此异常?根据您显示的代码,这仅在尝试保存
B
的实例时发生,因为关联仅在
B
上定义。然而,在你的问题中,你是在问如何在不保存
B
的情况下保存
A
,但你不是在保存
A
,你是在保存
B
。当我尝试只保存一个时,这是不可能的(至少在文章中描述的情况下是不可能的)。请参见,对于所描述的情况,该选项可以正常工作。显示引发错误的完整代码。