Java 休眠嵌套对象
我正在尝试保存嵌套对象,在这些嵌套对象中,我不想保存一个对象。我怎样才能做到这一点? 当我运行这个程序时,我得到了一个暂时的异常Java 休眠嵌套对象,java,hibernate,exception,persistence,Java,Hibernate,Exception,Persistence,我正在尝试保存嵌套对象,在这些嵌套对象中,我不想保存一个对象。我怎样才能做到这一点? 当我运行这个程序时,我得到了一个暂时的异常 org.hibernate.TransientObjectException: object references an unsaved transient instance. 我知道我在做一些hibernate不推荐的蠢事 情景: A, B, C, D are four different tables. Table A ( field1, field2 ,
org.hibernate.TransientObjectException: object references an unsaved transient instance.
我知道我在做一些hibernate不推荐的蠢事
情景:
A, B, C, D are four different tables.
Table A ( field1, field2 , field3[fk to table B])
Table B ( field3, field4 , field5 [fk to table C])
Table C ( field5, field7 , field8)
Table D ( field6, field9 , field3[fk to table B])
物体
A
B
D
我不清楚你为什么要这样做,但我认为这是可以做到的
与大多数框架一样,当您遵循hibernate设计支持的模式时,hibernate非常棒。当你尝试做一些“怪异”的事情时,事情可能会变得令人毛骨悚然和痛苦。当你 “将临时实例传递给期望 持久实例”
烘焙瞬态实例确保在将该瞬态实例传递给save方法之前已加载引用。如果没有持久引用,则首先保存没有引用到其他瞬态实例的对象 保存对象的代码?因为表B中的字段5可以为空,而C是一个静态表。我尝试将C赋值为NULL,如果我将C设置为NULL,它将开始查找C。
private String field1;
private String field2;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="field3")
private B b;
private String field3;
private String field4;
//Want to save D
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="field3")
private List<D> d; // This is a list of D
//Dont want to save C
@OneToOne
@JoinColumn(name="field5")
private C c;
private String field5;
private String field7;
private String field8;
private String field6;
private String field9;
private String field3;