Hello:
It seems like a simple problem, but I can't get it to work. I have two
entites, related by a OneToMany relationship:
| @Entity
| public class WidgetHolder {
|
| @Id (generate=GeneratorType.IDENTITY)
| private long id;
|
|
| @OneToMany(mappedBy="myWidgetHolder", cascade=CascadeType.ALL)
| private List<Widget> myWidgets = new ArrayList<Widgets>();
|
|
| public void addWidget(Widget aWidget) {
| myWidgets.add(aWidget);
| }
| }
|
|
| @Entity
| public class Widget {
|
| ...
|
| @ManyToOne(optional=false)
| @JoinColumn(name="WIDGET_HOLDER_ID", nullable=false, updatable=false)
| private WidgetHolder myWidgetHolder;
|
|
| public Widget(WidgetHolder aHolder) {
| myWidgetHolder = aHolder;
| }
|
|
| ...
|
| }
|
When I do the following in a SLSB:
| public class StatelessBean {
|
| @PersistenceContext (unitName="widgetContext")
| protected EntityManager em;
|
| public void createWidgetHolder() {
|
| WidgetHolder widgetHolder = new WidgetHolder();
|
| List<Widget> widgets = new ArrayList<Widget>();
| widgetHolder.addWidget(new Widget(widgetHolder))
| widgetHolder.addWidget(new Widget(widgetHolder));
|
| ...
|
| em.persist(widgetHolder);
| }
| }
|
I get the following error:
java.lang.RuntimeException: org.jboss.tm.JBossRollbackException: Unable to
commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=VELOCITY1/39,
BranchQual=, localId=39] status=STATUS_NO_TRANSACTION; - nested throwable:
(org.hibernate.PropertyValueException: not-null property references a null or
transient value: Widget.myWidgetHolder)
When I take out the "optional=false" and "nullable=false" on the ManyToOne
relationship, the INSERT statement for Widget tries to insert a NULL in the
WIDGET_HOLDER_ID column. (I use MSSQL 2000 as the datastore).
Is there some sort of annotation I need to explicitly tell Hibernate to get the
newly-created ID from WidgetStore and use it in the INSERT of Widget? Any help
would be appreciated - thanks!!
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3918877#3918877
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3918877
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user