<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
	<id>tag:n2.nabble.com,2006:forum-208411</id>
	<title>Nabble - OpenJPA Users</title>
	<updated>2009-07-04T08:55:15Z</updated>
	<link rel="self" type="application/atom+xml" href="http://n2.nabble.com/OpenJPA-Users-f208411.xml" />
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/OpenJPA-Users-f208411.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:n2.nabble.com,2006:post-3206070</id>
	<title>RE: Deployment</title>
	<published>2009-07-04T08:55:15Z</published>
	<updated>2009-07-04T08:55:15Z</updated>
	<author>
		<name>C N Davies</name>
	</author>
	<content type="html">Thanks Ravi,
&lt;br&gt;&lt;br&gt;I found that if I added my classes to the persistence.xml it all works fine
&lt;br&gt;but I thought I didn't have to do that, or am I mistaken.
&lt;br&gt;&lt;br&gt;Regards
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Ravi Palacherla [mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206070&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ravi.palacherla@...&lt;/a&gt;] 
&lt;br&gt;Sent: Sunday, 5 July 2009 1:32 AM
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206070&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users@...&lt;/a&gt;; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206070&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;
&lt;br&gt;Subject: RE: Deployment
&lt;br&gt;&lt;br&gt;Hi Chris,
&lt;br&gt;&lt;br&gt;There are two ways to enhance classes.
&lt;br&gt;&lt;br&gt;1) Build time enhancement 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Here is a link for build time enhancement:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc&lt;/a&gt;&lt;br&gt;_enhance_build 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Ant task for that is 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_in&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_in&lt;/a&gt;&lt;br&gt;tegration_enhance 
&lt;br&gt;&lt;br&gt;2) Run time enhancement.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc&lt;/a&gt;&lt;br&gt;_enhance_runtime 
&lt;br&gt;&lt;br&gt;If you did build time enhancement then 
&lt;br&gt;Decompile your class file and see if the class implements PersistenceCapable
&lt;br&gt;?
&lt;br&gt;&lt;br&gt;If it implements PersistenceCapable that means the class is enhanced.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Ravi.
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: C N Davies [mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206070&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;] 
&lt;br&gt;Sent: Saturday, July 04, 2009 3:49 AM
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206070&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users@...&lt;/a&gt;
&lt;br&gt;Subject: Deployment
&lt;br&gt;&lt;br&gt;I'm having an issue when running my application in that OpenJPA is
&lt;br&gt;complaining my class has not been enhanced but the class looks fine to me,
&lt;br&gt;can anyone see if I am missing something stupid please.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is the top of the stack trace:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
&lt;br&gt;&amp;quot;com.trm.core.Currency@cf3539&amp;quot; to PersistenceCapable failed. &amp;nbsp;Ensure that it
&lt;br&gt;has been enhanced.
&lt;br&gt;&lt;br&gt;FailedObject: com.trm.core.Currency@cf3539
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
&lt;br&gt;&amp;quot;com.trm.core.Currency@cf3539&amp;quot; to PersistenceCapable failed. &amp;nbsp;Ensure that it
&lt;br&gt;has been enhanced.
&lt;br&gt;FailedObject: com.trm.core.Currency@cf3539
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;I am wondering if is because of how I am using the objects. Basically the
&lt;br&gt;code is loading some data from a file, depending on some configuration the
&lt;br&gt;code will try to create the appropriate objects and then persist them. In
&lt;br&gt;order to make the code abstract, the code loads the data then creates a
&lt;br&gt;generic object and calls it setters to populate the data. Hence when the
&lt;br&gt;EntityManager is called to persist the object it I am passing it a generic
&lt;br&gt;object since I can't cast the object to the it's actual class at run time.
&lt;br&gt;From the stack trace it seems that OpenJPA knows the correct class type so I
&lt;br&gt;don't understand why it is complaining.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is my class:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;@Entity
&lt;br&gt;&lt;br&gt;@Table(name=&amp;quot;currency&amp;quot;)
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;public class Currency implements Serializable
&lt;br&gt;&lt;br&gt;{
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private static final long serialVersionUID = 1L;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; @Id
&lt;br&gt;&lt;br&gt;// &amp;nbsp; &amp;nbsp;@GeneratedValue(strategy=GenerationType.AUTO)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public Currency(){
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param isocode the isocode to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setIsocode(String isocode) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.isocode = isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the isocode
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getIsocode() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param name the name to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setName(String name) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.name = name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the name
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getName() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param country the country to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setCountry(String country) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.country = country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the country
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getCountry() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Thanks for any advice.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Deployment-tp3205034p3206070.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3205932"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3205932</id>
	<title>RE: Deployment</title>
	<published>2009-07-04T08:32:08Z</published>
	<updated>2009-07-04T08:32:08Z</updated>
	<author>
		<name>rpalache</name>
	</author>
	<content type="html">Hi Chris,
&lt;br&gt;&lt;br&gt;There are two ways to enhance classes.
&lt;br&gt;&lt;br&gt;1) Build time enhancement 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Here is a link for build time enhancement:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_enhance_build&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_enhance_build&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Ant task for that is 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_integration_enhance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_integration_enhance&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;2) Run time enhancement.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_enhance_runtime&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_enhance_runtime&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;If you did build time enhancement then 
&lt;br&gt;Decompile your class file and see if the class implements PersistenceCapable ?
&lt;br&gt;&lt;br&gt;If it implements PersistenceCapable that means the class is enhanced.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Ravi.
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: C N Davies [mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3205932&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;] 
&lt;br&gt;Sent: Saturday, July 04, 2009 3:49 AM
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3205932&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users@...&lt;/a&gt;
&lt;br&gt;Subject: Deployment
&lt;br&gt;&lt;br&gt;I'm having an issue when running my application in that OpenJPA is
&lt;br&gt;complaining my class has not been enhanced but the class looks fine to me,
&lt;br&gt;can anyone see if I am missing something stupid please.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is the top of the stack trace:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
&lt;br&gt;&amp;quot;com.trm.core.Currency@cf3539&amp;quot; to PersistenceCapable failed. &amp;nbsp;Ensure that it
&lt;br&gt;has been enhanced.
&lt;br&gt;&lt;br&gt;FailedObject: com.trm.core.Currency@cf3539
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
&lt;br&gt;&amp;quot;com.trm.core.Currency@cf3539&amp;quot; to PersistenceCapable failed. &amp;nbsp;Ensure that it
&lt;br&gt;has been enhanced.
&lt;br&gt;FailedObject: com.trm.core.Currency@cf3539
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;I am wondering if is because of how I am using the objects. Basically the
&lt;br&gt;code is loading some data from a file, depending on some configuration the
&lt;br&gt;code will try to create the appropriate objects and then persist them. In
&lt;br&gt;order to make the code abstract, the code loads the data then creates a
&lt;br&gt;generic object and calls it setters to populate the data. Hence when the
&lt;br&gt;EntityManager is called to persist the object it I am passing it a generic
&lt;br&gt;object since I can't cast the object to the it's actual class at run time.
&lt;br&gt;From the stack trace it seems that OpenJPA knows the correct class type so I
&lt;br&gt;don't understand why it is complaining.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is my class:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;@Entity
&lt;br&gt;&lt;br&gt;@Table(name=&amp;quot;currency&amp;quot;)
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;public class Currency implements Serializable
&lt;br&gt;&lt;br&gt;{
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private static final long serialVersionUID = 1L;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; @Id
&lt;br&gt;&lt;br&gt;// &amp;nbsp; &amp;nbsp;@GeneratedValue(strategy=GenerationType.AUTO)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public Currency(){
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param isocode the isocode to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setIsocode(String isocode) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.isocode = isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the isocode
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getIsocode() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param name the name to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setName(String name) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.name = name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the name
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getName() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param country the country to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setCountry(String country) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.country = country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the country
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getCountry() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Thanks for any advice.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Deployment-tp3205034p3205932.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3205034"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3205034</id>
	<title>Deployment</title>
	<published>2009-07-04T02:48:58Z</published>
	<updated>2009-07-04T02:48:58Z</updated>
	<author>
		<name>C N Davies</name>
	</author>
	<content type="html">I'm having an issue when running my application in that OpenJPA is
&lt;br&gt;complaining my class has not been enhanced but the class looks fine to me,
&lt;br&gt;can anyone see if I am missing something stupid please.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is the top of the stack trace:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
&lt;br&gt;&amp;quot;com.trm.core.Currency@cf3539&amp;quot; to PersistenceCapable failed. &amp;nbsp;Ensure that it
&lt;br&gt;has been enhanced.
&lt;br&gt;&lt;br&gt;FailedObject: com.trm.core.Currency@cf3539
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Attempt to cast instance
&lt;br&gt;&amp;quot;com.trm.core.Currency@cf3539&amp;quot; to PersistenceCapable failed. &amp;nbsp;Ensure that it
&lt;br&gt;has been enhanced.
&lt;br&gt;FailedObject: com.trm.core.Currency@cf3539
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;I am wondering if is because of how I am using the objects. Basically the
&lt;br&gt;code is loading some data from a file, depending on some configuration the
&lt;br&gt;code will try to create the appropriate objects and then persist them. In
&lt;br&gt;order to make the code abstract, the code loads the data then creates a
&lt;br&gt;generic object and calls it setters to populate the data. Hence when the
&lt;br&gt;EntityManager is called to persist the object it I am passing it a generic
&lt;br&gt;object since I can't cast the object to the it's actual class at run time.
&lt;br&gt;From the stack trace it seems that OpenJPA knows the correct class type so I
&lt;br&gt;don't understand why it is complaining.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Here is my class:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;@Entity
&lt;br&gt;&lt;br&gt;@Table(name=&amp;quot;currency&amp;quot;)
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;public class Currency implements Serializable
&lt;br&gt;&lt;br&gt;{
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private static final long serialVersionUID = 1L;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; @Id
&lt;br&gt;&lt;br&gt;// &amp;nbsp; &amp;nbsp;@GeneratedValue(strategy=GenerationType.AUTO)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; private String country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public Currency(){
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param isocode the isocode to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setIsocode(String isocode) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.isocode = isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the isocode
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getIsocode() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return isocode;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param name the name to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setName(String name) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.name = name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the name
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getName() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return name;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param country the country to set
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public void setCountry(String country) {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.country = country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return the country
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; public String getCountry() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return country;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Thanks for any advice.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Deployment-tp3205034p3205034.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3206364</id>
	<title>Re: PostgreSQL inet or cidr data types</title>
	<published>2009-07-04T10:14:36Z</published>
	<updated>2009-07-04T10:14:36Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Fri, Jul 3, 2009 at 8:56 PM, Vasil &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206364&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;vvangelovski@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; But that fails when the DDL executes because it tries to give it a length
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; the column definition:
&lt;br&gt;&amp;gt; address cidr(255) NOT NULL
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I don't know if this will help but you could try setting the length to -1.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3206364&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/PostgreSQL-inet-or-cidr-data-types-tp3204078p3206364.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3204078"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3204078</id>
	<title>PostgreSQL inet or cidr data types</title>
	<published>2009-07-03T17:56:00Z</published>
	<updated>2009-07-03T17:56:00Z</updated>
	<author>
		<name>Vasil</name>
	</author>
	<content type="html">Is there a way to use postgres' inet or cidr data types with openjpa?
&lt;br&gt;I've tried the obvious:
&lt;br&gt;&lt;br&gt;&amp;nbsp; @Column( nullable=false, columnDefinition=&amp;quot;cidr&amp;quot; )
&lt;br&gt;&amp;nbsp; &amp;nbsp; private String address;
&lt;br&gt;&lt;br&gt;But that fails when the DDL executes because it tries to give it a length in the column definition:
&lt;br&gt;address cidr(255) NOT NULL</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/PostgreSQL-inet-or-cidr-data-types-tp3204078p3204078.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3203339</id>
	<title>RE: Auto Generate table</title>
	<published>2009-07-03T13:57:20Z</published>
	<updated>2009-07-03T13:57:20Z</updated>
	<author>
		<name>rpalache</name>
	</author>
	<content type="html">Hi Chris,
&lt;br&gt;&lt;br&gt;Can you please try to run mapping tool against your entities.
&lt;br&gt;&lt;br&gt;Here is more info about mapping tool:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_mapping_mappingtool_examples&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_mapping_mappingtool_examples&lt;/a&gt;&lt;br&gt;&lt;br&gt;Info on Ant task for mapping tool :
&lt;br&gt;&lt;a href=&quot;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_integration_mappingtool&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_integration_mappingtool&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Ravi.
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: C N Davies [mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203339&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;] 
&lt;br&gt;Sent: Friday, July 03, 2009 1:37 PM
&lt;br&gt;To: Judes Tumuhairwe; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203339&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users@...&lt;/a&gt;
&lt;br&gt;Subject: RE: Auto Generate table
&lt;br&gt;&lt;br&gt;Thanks Judes.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;I already have:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.jdbc.SynchronizeMappings&amp;quot;
&lt;br&gt;value=&amp;quot;buildSchema(ForeignKeys=true)&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Bizarre.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;From: Judes Tumuhairwe [mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203339&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;judethecutedude@...&lt;/a&gt;] 
&lt;br&gt;Sent: Saturday, 4 July 2009 5:32 AM
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203339&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users@...&lt;/a&gt;; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203339&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;
&lt;br&gt;Subject: Re: Auto Generate table
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;See [1] for a complete example. But in short, you need to add the following
&lt;br&gt;property to your persistence.xml properties
&lt;br&gt;&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.jdbc.SynchronizeMappings&amp;quot;
&lt;br&gt;value=&amp;quot;buildSchema(ForeignKeys=true)&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[1] &lt;a href=&quot;http://plunchete.wordpress.com/2007/05/06/using-openjpa/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://plunchete.wordpress.com/2007/05/06/using-openjpa/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-Judes
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, Jul 3, 2009 at 6:16 AM, C N Davies &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203339&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;What do I need to set to have tables automatically generated by OpenJPA?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Auto-Generate-table-tp3201185p3203339.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3203033"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3203033</id>
	<title>RE: Auto Generate table</title>
	<published>2009-07-03T12:36:54Z</published>
	<updated>2009-07-03T12:36:54Z</updated>
	<author>
		<name>C N Davies</name>
	</author>
	<content type="html">Thanks Judes.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;I already have:
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.jdbc.SynchronizeMappings&amp;quot;
&lt;br&gt;value=&amp;quot;buildSchema(ForeignKeys=true)&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Bizarre.
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;From: Judes Tumuhairwe [mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203033&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;judethecutedude@...&lt;/a&gt;] 
&lt;br&gt;Sent: Saturday, 4 July 2009 5:32 AM
&lt;br&gt;To: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203033&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users@...&lt;/a&gt;; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203033&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;
&lt;br&gt;Subject: Re: Auto Generate table
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;See [1] for a complete example. But in short, you need to add the following
&lt;br&gt;property to your persistence.xml properties
&lt;br&gt;&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.jdbc.SynchronizeMappings&amp;quot;
&lt;br&gt;value=&amp;quot;buildSchema(ForeignKeys=true)&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[1] &lt;a href=&quot;http://plunchete.wordpress.com/2007/05/06/using-openjpa/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://plunchete.wordpress.com/2007/05/06/using-openjpa/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-Judes
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, Jul 3, 2009 at 6:16 AM, C N Davies &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203033&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;What do I need to set to have tables automatically generated by OpenJPA?
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Auto-Generate-table-tp3201185p3203033.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3203022"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3203022</id>
	<title>Re: Auto Generate table</title>
	<published>2009-07-03T12:31:52Z</published>
	<updated>2009-07-03T12:31:52Z</updated>
	<author>
		<name>Judes Tumuhairwe</name>
	</author>
	<content type="html">See [1] for a complete example. But in short, you need to add the following
&lt;br&gt;property to your persistence.xml properties
&lt;br&gt;&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.jdbc.SynchronizeMappings&amp;quot; value=&amp;quot;buildSchema&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[1] &lt;a href=&quot;http://plunchete.wordpress.com/2007/05/06/using-openjpa/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://plunchete.wordpress.com/2007/05/06/using-openjpa/&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-Judes
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, Jul 3, 2009 at 6:16 AM, C N Davies &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3203022&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cnd@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What do I need to set to have tables automatically generated by OpenJPA?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Chris
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Auto-Generate-table-tp3201185p3203022.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3201185"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3201185</id>
	<title>Auto Generate table</title>
	<published>2009-07-03T06:16:39Z</published>
	<updated>2009-07-03T06:16:39Z</updated>
	<author>
		<name>C N Davies</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;What do I need to set to have tables automatically generated by OpenJPA?
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Chris
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Auto-Generate-table-tp3201185p3201185.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3196541</id>
	<title>Webapp restart problem</title>
	<published>2009-07-02T10:33:41Z</published>
	<updated>2009-07-02T10:33:41Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">Hey all, when I (re)deploy my application to Tomcat (using the manager app
&lt;br&gt;to stop/start the app) it fails with this exception:
&lt;br&gt;&lt;br&gt;Caused by: &amp;lt;openjpa-1.2.1-r752877:753278 nonfatal general error&amp;gt;
&lt;br&gt;org.apache.openjpa.util.GeneralException: JAR entry META-INF/persistence.xml
&lt;br&gt;not found in /opt/tomcat/webapps/myapp/WEB-INF/lib/app.jar
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at sun.net.www.protocol.jar.JarURLConnection.getInputStream(Unknown
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at java.net.URL.openStream(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.lib.util.J2DoPrivHelper$39.run(J2DoPrivHelper.java:826)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at java.security.AccessController.doPrivileged(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.lib.meta.URLMetaDataIterator.getInputStream(URLMetaDataIterator.java:67)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.lib.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:318)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.lib.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:295)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.lib.meta.XMLMetaDataParser.parse(XMLMetaDataParser.java:268)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProductDerivation$ConfigurationParser.parse(PersistenceProductDerivation.java:509)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProductDerivation.parseResources(PersistenceProductDerivation.java:359)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProductDerivation.load(PersistenceProductDerivation.java:326)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProductDerivation.load(PersistenceProductDerivation.java:161)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:77)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:109)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at
&lt;br&gt;org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:53)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at javax.persistence.Persistence.createFactory(Persistence.java:171)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;... 33 more
&lt;br&gt;&lt;br&gt;A complete restart of Tomcat fixes the problem and it starts fine, so the
&lt;br&gt;persistence.xml file is there. Anyone seen this sort of thing?
&lt;br&gt;&lt;br&gt;Thanks.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3196541&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Webapp-restart-problem-tp3196541p3196541.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3193960</id>
	<title>UserException: You did not name the factory class with the required property openjpa.BrokerFactory</title>
	<published>2009-07-02T01:09:59Z</published>
	<updated>2009-07-02T01:09:59Z</updated>
	<author>
		<name>nfrancoi</name>
	</author>
	<content type="html">Dear all,
&lt;br&gt;&lt;br&gt;I face a problem when I try to make a flat executable JAR of an application that uses OpenJPA.
&lt;br&gt;My configuration files work perfectly on an application server
&lt;br&gt;&lt;br&gt;It seams that some JAR are missing but in my pom.xml I specifie the following dependencies:
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.apache.openjpa&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;openjpa-persistence&amp;lt;/artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;1.2.1&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.apache.openjpa&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;openjpa-persistence-jdbc&amp;lt;/artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;1.2.1&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;scope&amp;gt;runtime&amp;lt;/scope&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;&lt;br&gt;Do you have any idea of what is the problem?
&lt;br&gt;&lt;br&gt;Thanks for your help,
&lt;br&gt;&lt;br&gt;&lt;br&gt;Nicolas 
&lt;br&gt;&lt;br&gt;&lt;br&gt;Here stands the stack trace.
&lt;br&gt;&lt;br&gt;&lt;i&gt;&lt;br&gt;Exception in thread &amp;quot;main&amp;quot; org.springframework.beans.factory.BeanCreationExcepti
&lt;br&gt;on: Error creating bean with name 'prmGeneratedProcessesDao': Injection of persi
&lt;br&gt;stence methods failed; nested exception is org.springframework.beans.factory.Bea
&lt;br&gt;nCreationException: Error creating bean with name 'gpEntityManagerFactory' defin
&lt;br&gt;ed in class path resource [daoContext.xml]: Invocation of init method failed; ne
&lt;br&gt;sted exception is &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.ope
&lt;br&gt;njpa.persistence.ArgumentException: Could not invoke the static newInstance meth
&lt;br&gt;od on the named factory class &amp;quot;&amp;lt;&amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.util.UserException: You did not name the factory class with t
&lt;br&gt;he required property openjpa.BrokerFactory. &amp;nbsp;Normally this property defaults app
&lt;br&gt;ropriately; have you forgotten to include all the OpenJPA jars in your classpath
&lt;br&gt;?&amp;gt;&amp;quot;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
&lt;br&gt;essor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:324)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.populateBean(AbstractAutowireCapableBeanFactory.java:998)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.security.AccessController.doPrivileged(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
&lt;br&gt;ject(AbstractBeanFactory.java:264)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
&lt;br&gt;y.getSingleton(DefaultSingletonBeanRegistry.java:222)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
&lt;br&gt;an(AbstractBeanFactory.java:261)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
&lt;br&gt;(AbstractBeanFactory.java:185)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
&lt;br&gt;(AbstractBeanFactory.java:164)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.DefaultListableBeanFactory.
&lt;br&gt;preInstantiateSingletons(DefaultListableBeanFactory.java:429)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.context.support.AbstractApplicationContext.finish
&lt;br&gt;BeanFactoryInitialization(AbstractApplicationContext.java:728)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.context.support.AbstractApplicationContext.refres
&lt;br&gt;h(AbstractApplicationContext.java:380)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;i nit&gt;(ClassPathXmlApplicationContext.java:139)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;i nit&gt;(ClassPathXmlApplicationContext.java:83)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at com.caceis.tacos.computations.Main.startLimitsJob(Main.java:70)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at com.caceis.tacos.computations.Main.main(Main.java:51)
&lt;br&gt;Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
&lt;br&gt;ng bean with name 'gpEntityManagerFactory' defined in class path resource [daoCo
&lt;br&gt;ntext.xml]: Invocation of init method failed; nested exception is &amp;lt;openjpa-1.2.1
&lt;br&gt;-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.persistence.ArgumentExcepti
&lt;br&gt;on: Could not invoke the static newInstance method on the named factory class &amp;quot;&amp;lt;
&lt;br&gt;&amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.util.UserExce
&lt;br&gt;ption: You did not name the factory class with the required property openjpa.Bro
&lt;br&gt;kerFactory. &amp;nbsp;Normally this property defaults appropriately; have you forgotten t
&lt;br&gt;o include all the OpenJPA jars in your classpath?&amp;gt;&amp;quot;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.security.AccessController.doPrivileged(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
&lt;br&gt;ject(AbstractBeanFactory.java:264)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
&lt;br&gt;y.getSingleton(DefaultSingletonBeanRegistry.java:222)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
&lt;br&gt;an(AbstractBeanFactory.java:261)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
&lt;br&gt;(AbstractBeanFactory.java:185)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
&lt;br&gt;(AbstractBeanFactory.java:164)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.EntityManagerFactoryUtils.findEntityManag
&lt;br&gt;erFactory(EntityManagerFactoryUtils.java:99)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
&lt;br&gt;essor.findNamedEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:
&lt;br&gt;488)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
&lt;br&gt;essor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:470)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
&lt;br&gt;essor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProce
&lt;br&gt;ssor.java:599)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
&lt;br&gt;essor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProces
&lt;br&gt;sor.java:570)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.annotation.InjectionMetadata$Inject
&lt;br&gt;edElement.inject(InjectionMetadata.java:192)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.annotation.InjectionMetadata.inject
&lt;br&gt;Methods(InjectionMetadata.java:117)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
&lt;br&gt;essor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:321)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 17 more
&lt;br&gt;Caused by: &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.pe
&lt;br&gt;rsistence.ArgumentException: Could not invoke the static newInstance method on t
&lt;br&gt;he named factory class &amp;quot;&amp;lt;&amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apa
&lt;br&gt;che.openjpa.util.UserException: You did not name the factory class with the requ
&lt;br&gt;ired property openjpa.BrokerFactory. &amp;nbsp;Normally this property defaults appropriat
&lt;br&gt;ely; have you forgotten to include all the OpenJPA jars in your classpath?&amp;gt;&amp;quot;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:7
&lt;br&gt;0)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.persistence.PersistenceProviderImpl.getBrokerFacto
&lt;br&gt;ry(PersistenceProviderImpl.java:102)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.persistence.PersistenceProviderImpl.createContaine
&lt;br&gt;rEntityManagerFactory(PersistenceProviderImpl.java:142)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.persistence.PersistenceProviderImpl.createContaine
&lt;br&gt;rEntityManagerFactory(PersistenceProviderImpl.java:53)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.cr
&lt;br&gt;eateNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:224)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPro
&lt;br&gt;pertiesSet(AbstractEntityManagerFactoryBean.java:291)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBean
&lt;br&gt;Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 34 more
&lt;br&gt;Caused by: &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.pe
&lt;br&gt;rsistence.ArgumentException: You did not name the factory class with the require
&lt;br&gt;d property openjpa.BrokerFactory. &amp;nbsp;Normally this property defaults appropriately
&lt;br&gt;; have you forgotten to include all the OpenJPA jars in your classpath?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.kernel.Bootstrap.getFactoryClass(Bootstrap.java:15
&lt;br&gt;3)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.kernel.Bootstrap.invokeFactory(Bootstrap.java:111)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:6
&lt;br&gt;2)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 41 more
&lt;br&gt;&lt;/i&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UserException%3A-You-did-not-name-the-factory-class-with-the-required-property-openjpa.BrokerFactory-tp3193960p3193960.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3193957</id>
	<title>UserException: You did not name the factory class with the required property openjpa.BrokerFactory</title>
	<published>2009-07-02T01:09:15Z</published>
	<updated>2009-07-02T01:09:15Z</updated>
	<author>
		<name>nfrancoi</name>
	</author>
	<content type="html">Dear all,

I face a problem when I try to make a flat executable JAR of an application that uses OpenJPA.
My configuration files work perfectly on an application server

It seams that some JAR are missing but in my pom.xml I specifie the following dependencies:

 &lt;dependency&gt;
            &lt;groupId&gt;org.apache.openjpa&lt;/groupId&gt;
            &lt;artifactId&gt;openjpa-persistence&lt;/artifactId&gt;
            &lt;version&gt;1.2.1&lt;/version&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
            &lt;groupId&gt;org.apache.openjpa&lt;/groupId&gt;
            &lt;artifactId&gt;openjpa-persistence-jdbc&lt;/artifactId&gt;
            &lt;version&gt;1.2.1&lt;/version&gt;
            &lt;scope&gt;runtime&lt;/scope&gt;
 &lt;/dependency&gt;

Do you have any idea of what is the problem?

Thanks for your help,


Nicolas 


Here stands the stack trace.

&lt;i&gt;
Exception in thread &quot;main&quot; org.springframework.beans.factory.BeanCreationExcepti
on: Error creating bean with name 'prmGeneratedProcessesDao': Injection of persi
stence methods failed; nested exception is org.springframework.beans.factory.Bea
nCreationException: Error creating bean with name 'gpEntityManagerFactory' defin
ed in class path resource [daoContext.xml]: Invocation of init method failed; ne
sted exception is &lt;openjpa-1.2.1-r752877:753278 fatal user error&gt; org.apache.ope
njpa.persistence.ArgumentException: Could not invoke the static newInstance meth
od on the named factory class &quot;&lt;&lt;openjpa-1.2.1-r752877:753278 fatal user error&gt;
org.apache.openjpa.util.UserException: You did not name the factory class with t
he required property openjpa.BrokerFactory.  Normally this property defaults app
ropriately; have you forgotten to include all the OpenJPA jars in your classpath
?&gt;&quot;.
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
essor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:324)

        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.populateBean(AbstractAutowireCapableBeanFactory.java:998)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:264)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:261)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
preInstantiateSingletons(DefaultListableBeanFactory.java:429)
        at org.springframework.context.support.AbstractApplicationContext.finish
BeanFactoryInitialization(AbstractApplicationContext.java:728)
        at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:380)
        at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;i nit&gt;(ClassPathXmlApplicationContext.java:139)
        at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;i nit&gt;(ClassPathXmlApplicationContext.java:83)
        at com.caceis.tacos.computations.Main.startLimitsJob(Main.java:70)
        at com.caceis.tacos.computations.Main.main(Main.java:51)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
ng bean with name 'gpEntityManagerFactory' defined in class path resource [daoCo
ntext.xml]: Invocation of init method failed; nested exception is &lt;openjpa-1.2.1 -r752877:753278 fatal user error&gt; org.apache.openjpa.persistence.ArgumentExcepti
on: Could not invoke the static newInstance method on the named factory class &quot;&lt;
&lt;openjpa-1.2.1-r752877:753278 fatal user error&gt; org.apache.openjpa.util.UserExce
ption: You did not name the factory class with the required property openjpa.Bro
kerFactory.  Normally this property defaults appropriately; have you forgotten t
o include all the OpenJPA jars in your classpath?&gt;&quot;.
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory$1.run(AbstractAutowireCapableBeanFactory.java:409)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:380)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:264)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:261)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:185)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:164)
        at org.springframework.orm.jpa.EntityManagerFactoryUtils.findEntityManag
erFactory(EntityManagerFactoryUtils.java:99)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
essor.findNamedEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:
488)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
essor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:470)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
essor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProce
ssor.java:599)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
essor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProces
sor.java:570)
        at org.springframework.beans.factory.annotation.InjectionMetadata$Inject
edElement.inject(InjectionMetadata.java:192)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject
Methods(InjectionMetadata.java:117)
        at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProc
essor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:321)

        ... 17 more
Caused by: &lt;openjpa-1.2.1-r752877:753278 fatal user error&gt; org.apache.openjpa.pe
rsistence.ArgumentException: Could not invoke the static newInstance method on t
he named factory class &quot;&lt;&lt;openjpa-1.2.1-r752877:753278 fatal user error&gt; org.apa
che.openjpa.util.UserException: You did not name the factory class with the requ
ired property openjpa.BrokerFactory.  Normally this property defaults appropriat
ely; have you forgotten to include all the OpenJPA jars in your classpath?&gt;&quot;.
        at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:7
0)
        at org.apache.openjpa.persistence.PersistenceProviderImpl.getBrokerFacto
ry(PersistenceProviderImpl.java:102)
        at org.apache.openjpa.persistence.PersistenceProviderImpl.createContaine
rEntityManagerFactory(PersistenceProviderImpl.java:142)
        at org.apache.openjpa.persistence.PersistenceProviderImpl.createContaine
rEntityManagerFactory(PersistenceProviderImpl.java:53)
        at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.cr
eateNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:224)
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPro
pertiesSet(AbstractEntityManagerFactoryBean.java:291)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
        ... 34 more
Caused by: &lt;openjpa-1.2.1-r752877:753278 fatal user error&gt; org.apache.openjpa.pe
rsistence.ArgumentException: You did not name the factory class with the require
d property openjpa.BrokerFactory.  Normally this property defaults appropriately
; have you forgotten to include all the OpenJPA jars in your classpath?
        at org.apache.openjpa.kernel.Bootstrap.getFactoryClass(Bootstrap.java:15
3)
        at org.apache.openjpa.kernel.Bootstrap.invokeFactory(Bootstrap.java:111)

        at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:6
2)
        ... 41 more
&lt;/i&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/UserException%3A-You-did-not-name-the-factory-class-with-the-required-property-openjpa.BrokerFactory-tp3193957p3193957.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3192520</id>
	<title>Cascade deletion problem</title>
	<published>2009-07-01T16:48:26Z</published>
	<updated>2009-07-01T16:48:26Z</updated>
	<author>
		<name>JayaPrakash</name>
	</author>
	<content type="html">While doing an orphan deletion, does the DB Foreign key constraint on delete, causes Optimistic locking exception in OpenJPA? If this is correct, can somebody help us out with the solution? Any help is highly appreciated.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;JP</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Cascade-deletion-problem-tp3192520p3192520.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3192501</id>
	<title>Detached state causing illegal state exception</title>
	<published>2009-07-01T16:44:18Z</published>
	<updated>2009-07-01T16:44:18Z</updated>
	<author>
		<name>JayaPrakash</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; We have added a detached state configuration in the persistence.xml to update empty fields as well. It works file for all the domains except one. The configuration is same across domains and the only change we can see is at the DAO level. The DAO for the domain which we using does not have an annotation @Repository where in all the other DAOs have this. 
&lt;br&gt;&lt;br&gt;If this is not the cause, can somebody help us with the problem? since this is causing whole app to fail.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;JP</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Detached-state-causing-illegal-state-exception-tp3192501p3192501.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3191873</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-01T14:19:10Z</published>
	<updated>2009-07-01T14:19:10Z</updated>
	<author>
		<name>John_canada</name>
	</author>
	<content type="html">Thanks for the quick reply, Rick.
&lt;br&gt;&lt;br&gt;Eventually I found out it was about the datasource config:
&lt;br&gt;&lt;br&gt;in such case(using Tomcat), the my.war/WEB-INF/classes/META-INF/persistence.xml 
&lt;br&gt;1. should not specify any database info but the datasource id (specified in /tomcat/conf/openejb.xml), as
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;contextDS&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&lt;br&gt;if specifying the database info, like
&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; value=&amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;then the following error found:
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.persistence.ArgumentException: A connection could not be obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL &amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:136)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:120)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:78)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:309)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:216)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;2. create and place up openejb.xml and open-ejb-jar.xml in the same METTA-INF folder, companied with persistence.xml, then the created entity bean and its data can be found/accessed in run time (in debug), but it's not persisted in database.
&lt;br&gt;&lt;br&gt;openejb-jar.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;dep:environment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:moduleId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:groupId&amp;gt;myEJB&amp;lt;/dep:groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:artifactId&amp;gt;EJB&amp;lt;/dep:artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:version&amp;gt;2.0&amp;lt;/dep:version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:type&amp;gt;car&amp;lt;/dep:type&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dep:moduleId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/dep:environment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:pattern&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:groupId&amp;gt;console.myTX&amp;lt;/name:groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:artifactId&amp;gt;myTX&amp;lt;/name:artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/name:pattern&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/name:cmp-connection-factory&amp;gt;
&lt;br&gt;&lt;br&gt;data info in openejb.xml as:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ....
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&lt;br&gt;the persistence.xml:
&lt;br&gt;&amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;so, my question became, how to specify the datasource out of /tomcat/conf/?
&lt;br&gt;&lt;br&gt;Thanks in advance.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;John
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;quote author=&quot;Rick Curtis&quot;&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Rick Curtis wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;John -
&lt;br&gt;&lt;br&gt;It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;specify a value... I'm assuming that you're using an AI column for your id.
&lt;br&gt;I see you're running on MySQL, so try adding the annotation
&lt;br&gt;@GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If that
&lt;br&gt;doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&lt;br&gt;-Rick
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; it's
&lt;br&gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity as
&lt;br&gt;&amp;gt; following:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert null
&lt;br&gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement [INSERT
&lt;br&gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt 6240623
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191873.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190931"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3191867</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-01T14:18:25Z</published>
	<updated>2009-07-01T14:18:25Z</updated>
	<author>
		<name>John_canada</name>
	</author>
	<content type="html">Thanks for the quick reply, Rick.
&lt;br&gt;&lt;br&gt;Eventually I found out it was about the datasource config:
&lt;br&gt;&lt;br&gt;in such case(using Tomcat), the my.war/WEB-INF/classes/META-INF/persistence.xml 
&lt;br&gt;1. should not specify any database info but the datasource id (specified in /tomcat/conf/openejb.xml), as
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;contextDS&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&lt;br&gt;if specifying the database info, like
&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; value=&amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;then the following error found:
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.persistence.ArgumentException: A connection could not be obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL &amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:136)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:120)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:78)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:309)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:216)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;2. create and place up openejb.xml and open-ejb-jar.xml in the same METTA-INF folder, companied with persistence.xml, then the created entity bean and its data can be found/accessed in run time (in debug), but it's not persisted in database.
&lt;br&gt;&lt;br&gt;openejb-jar.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;dep:environment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:moduleId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:groupId&amp;gt;myEJB&amp;lt;/dep:groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:artifactId&amp;gt;EJB&amp;lt;/dep:artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:version&amp;gt;2.0&amp;lt;/dep:version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:type&amp;gt;car&amp;lt;/dep:type&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dep:moduleId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/dep:environment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:pattern&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:groupId&amp;gt;console.myTX&amp;lt;/name:groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:artifactId&amp;gt;myTX&amp;lt;/name:artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/name:pattern&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/name:cmp-connection-factory&amp;gt;
&lt;br&gt;&lt;br&gt;data info in openejb.xml as:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ....
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&lt;br&gt;the persistence.xml:
&lt;br&gt;&amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;so, my question became, how to specify the datasource out of /tomcat/conf/?
&lt;br&gt;&lt;br&gt;Thanks in advance.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;John
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Rick Curtis wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;John -
&lt;br&gt;&lt;br&gt;It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;specify a value... I'm assuming that you're using an AI column for your id.
&lt;br&gt;I see you're running on MySQL, so try adding the annotation
&lt;br&gt;@GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If that
&lt;br&gt;doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&lt;br&gt;-Rick
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; it's
&lt;br&gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity as
&lt;br&gt;&amp;gt; following:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert null
&lt;br&gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement [INSERT
&lt;br&gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt 6240623
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191867.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190931"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3200721</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-03T04:30:00Z</published>
	<updated>2009-07-03T04:30:00Z</updated>
	<author>
		<name>John_canada</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;I came across to get the solution, as following:
&lt;br&gt;&lt;br&gt;1. for J2EE env, the persistence must use JNDI;
&lt;br&gt;2. the openejb.xml, must use tag &amp;lt;connection&amp;gt; instead of Resource.
&lt;br&gt;&lt;br&gt;Hope this can be helpful when using openejb over openjpa.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;John
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;John_canada wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Thanks lots Mike.
&lt;br&gt;&lt;br&gt;Actually what I wanted was to simply specify a connection in persistence.xml, if can not, then specifying in openejb-jar.xml (or openejb.xml, in same META-INF folder).
&lt;br&gt;&lt;br&gt;the pesistence.xml as
&lt;br&gt;&amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt; 
&lt;br&gt;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;properties&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot; value=&amp;quot;jdbc:mysql://localhost:3306/aa&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot; value=&amp;quot;com.mysql.jdbc.Driver&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionUserName&amp;quot; value=&amp;quot;root&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionPassword&amp;quot; value=&amp;quot;pass&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.Log&amp;quot; value=&amp;quot;DefaultLevel=INFO, SQL=TRACE&amp;quot;/&amp;gt;
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;The db info is correct (tested in dos command prompt). however, it when trying to connect via calling entity bean, I still got:
&lt;br&gt;javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is: 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;openjpa-1.2.1-r752877:753278 nonfatal general error&amp;gt; org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.util.UserException: A connection could not be obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL &amp;quot;jdbc:mysql://localhost:3306/aa&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;Was this (connection issue) in jpa package or in ejb package? 
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;John
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Michael Dick wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;At least some of this will be better handled by the OpenEJB / Tomcat folks
&lt;br&gt;and we can certainly cross post the question on their mailing list(s) if
&lt;br&gt;needed.
&lt;br&gt;&lt;br&gt;From an OpenJPA point of view you should be able to specify the connection
&lt;br&gt;properties (openjpa.ConnectionURL, openjpa.ConnectionDriverName, etc.) or
&lt;br&gt;use a jta-data-source in persistence.xml. If you use a jta-data-source then
&lt;br&gt;the only requirement is that the value you provide (ie contextDS) is
&lt;br&gt;available in JNDI. Usually a datasource will be bound to a location like
&lt;br&gt;jdbc/${my datasource name} (coming from a WebSphere background, but I
&lt;br&gt;believe this is fairly common), Tomcat might expect a similar context root -
&lt;br&gt;would have to check Tomcat's doc to be sure.
&lt;br&gt;&lt;br&gt;The error you're getting can indicate a lot of things though :
&lt;br&gt;1. The ConnectionURL is incorrect
&lt;br&gt;2. The UserID &amp; Password aren't correct
&lt;br&gt;3. There's a firewall blocking port 3306
&lt;br&gt;4. MySQL is configured to only accept remote connections to the ejb database
&lt;br&gt;(pretty unlikely, but you could do this).
&lt;br&gt;&lt;br&gt;To eliminate those as possibilities, can you try connecting directly to the
&lt;br&gt;database (ie no JPA / Tomcat / etc)? If you can connect then it's likely
&lt;br&gt;that something is getting in the way.
&lt;br&gt;&lt;br&gt;If you'd rather pursue the JNDI path (ie your questions about openejb.xml
&lt;br&gt;and datasource configuration) then you / we will have to re-post on
&lt;br&gt;users@openejb for expert advice.
&lt;br&gt;&lt;br&gt;-mike
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 4:14 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for the quick reply, Rick.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Eventually I found out it was about the datasource config:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; in such case(using Tomcat), the
&lt;br&gt;&amp;gt; my.war/WEB-INF/classes/META-INF/persistence.xml
&lt;br&gt;&amp;gt; 1. should not specify any database info but the datasource id (specified in
&lt;br&gt;&amp;gt; /tomcat/conf/openejb.xml), as
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;contextDS&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if specifying the database info, like
&lt;br&gt;&amp;gt; &amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;value=&amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;...
&lt;br&gt;&amp;gt; then the following error found:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.ArgumentException: A connection could not be
&lt;br&gt;&amp;gt; obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL
&lt;br&gt;&amp;gt; &amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:136)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:78)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:309)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:216)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2. create and place up openejb.xml and open-ejb-jar.xml in the same
&lt;br&gt;&amp;gt; METTA-INF folder, companied with persistence.xml, then the created entity
&lt;br&gt;&amp;gt; bean and its data can be found/accessed in run time (in debug), but it's
&lt;br&gt;&amp;gt; not
&lt;br&gt;&amp;gt; persisted in database.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb-jar.xml
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;dep:environment&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:moduleId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:groupId&amp;gt;myEJB&amp;lt;/dep:groupId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:artifactId&amp;gt;EJB&amp;lt;/dep:artifactId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:version&amp;gt;2.0&amp;lt;/dep:version&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:type&amp;gt;car&amp;lt;/dep:type&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dep:moduleId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;/dep:environment&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:pattern&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:groupId&amp;gt;console.myTX&amp;lt;/name:groupId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:artifactId&amp;gt;myTX&amp;lt;/name:artifactId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/name:pattern&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;/name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; data info in openejb.xml as:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ....
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; so, my question became, how to specify the datasource out of /tomcat/conf/?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks in advance.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rick Curtis wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; John -
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;&amp;gt; &amp;gt; specify a value... I'm assuming that you're using an AI column for your
&lt;br&gt;&amp;gt; &amp;gt; id.
&lt;br&gt;&amp;gt; &amp;gt; I see you're running on MySQL, so try adding the annotation
&lt;br&gt;&amp;gt; &amp;gt; @GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If
&lt;br&gt;&amp;gt; &amp;gt; that
&lt;br&gt;&amp;gt; &amp;gt; doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; -Rick
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; it's
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; as
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; following:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert
&lt;br&gt;&amp;gt; null
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement
&lt;br&gt;&amp;gt; [INSERT
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 6240623
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; John
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3200721.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3195129"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3195129</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-02T06:54:06Z</published>
	<updated>2009-07-02T06:54:06Z</updated>
	<author>
		<name>John_canada</name>
	</author>
	<content type="html">Thanks lots Mike.
&lt;br&gt;&lt;br&gt;Actually what I wanted was to simply specify a connection in persistence.xml, if can not, then specifying in openejb-jar.xml (or openejb.xml, in same META-INF folder).
&lt;br&gt;&lt;br&gt;the pesistence.xml as
&lt;br&gt;&amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt; 
&lt;br&gt;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;properties&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot; value=&amp;quot;jdbc:mysql://localhost:3306/aa&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot; value=&amp;quot;com.mysql.jdbc.Driver&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionUserName&amp;quot; value=&amp;quot;root&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionPassword&amp;quot; value=&amp;quot;pass&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.Log&amp;quot; value=&amp;quot;DefaultLevel=INFO, SQL=TRACE&amp;quot;/&amp;gt;
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;The db info is correct (tested in dos command prompt). however, it when trying to connect via calling entity bean, I still got:
&lt;br&gt;javax.ejb.EJBException: The bean encountered a non-application exception; nested exception is: 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;openjpa-1.2.1-r752877:753278 nonfatal general error&amp;gt; org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.util.UserException: A connection could not be obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL &amp;quot;jdbc:mysql://localhost:3306/aa&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;Was this (connection issue) in jpa package or in ejb package? 
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;John
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Michael Dick wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;At least some of this will be better handled by the OpenEJB / Tomcat folks
&lt;br&gt;and we can certainly cross post the question on their mailing list(s) if
&lt;br&gt;needed.
&lt;br&gt;&lt;br&gt;From an OpenJPA point of view you should be able to specify the connection
&lt;br&gt;properties (openjpa.ConnectionURL, openjpa.ConnectionDriverName, etc.) or
&lt;br&gt;use a jta-data-source in persistence.xml. If you use a jta-data-source then
&lt;br&gt;the only requirement is that the value you provide (ie contextDS) is
&lt;br&gt;available in JNDI. Usually a datasource will be bound to a location like
&lt;br&gt;jdbc/${my datasource name} (coming from a WebSphere background, but I
&lt;br&gt;believe this is fairly common), Tomcat might expect a similar context root -
&lt;br&gt;would have to check Tomcat's doc to be sure.
&lt;br&gt;&lt;br&gt;The error you're getting can indicate a lot of things though :
&lt;br&gt;1. The ConnectionURL is incorrect
&lt;br&gt;2. The UserID &amp; Password aren't correct
&lt;br&gt;3. There's a firewall blocking port 3306
&lt;br&gt;4. MySQL is configured to only accept remote connections to the ejb database
&lt;br&gt;(pretty unlikely, but you could do this).
&lt;br&gt;&lt;br&gt;To eliminate those as possibilities, can you try connecting directly to the
&lt;br&gt;database (ie no JPA / Tomcat / etc)? If you can connect then it's likely
&lt;br&gt;that something is getting in the way.
&lt;br&gt;&lt;br&gt;If you'd rather pursue the JNDI path (ie your questions about openejb.xml
&lt;br&gt;and datasource configuration) then you / we will have to re-post on
&lt;br&gt;users@openejb for expert advice.
&lt;br&gt;&lt;br&gt;-mike
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 4:14 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for the quick reply, Rick.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Eventually I found out it was about the datasource config:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; in such case(using Tomcat), the
&lt;br&gt;&amp;gt; my.war/WEB-INF/classes/META-INF/persistence.xml
&lt;br&gt;&amp;gt; 1. should not specify any database info but the datasource id (specified in
&lt;br&gt;&amp;gt; /tomcat/conf/openejb.xml), as
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;contextDS&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if specifying the database info, like
&lt;br&gt;&amp;gt; &amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;value=&amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;...
&lt;br&gt;&amp;gt; then the following error found:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.ArgumentException: A connection could not be
&lt;br&gt;&amp;gt; obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL
&lt;br&gt;&amp;gt; &amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:136)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:78)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:309)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:216)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2. create and place up openejb.xml and open-ejb-jar.xml in the same
&lt;br&gt;&amp;gt; METTA-INF folder, companied with persistence.xml, then the created entity
&lt;br&gt;&amp;gt; bean and its data can be found/accessed in run time (in debug), but it's
&lt;br&gt;&amp;gt; not
&lt;br&gt;&amp;gt; persisted in database.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb-jar.xml
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;dep:environment&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:moduleId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:groupId&amp;gt;myEJB&amp;lt;/dep:groupId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:artifactId&amp;gt;EJB&amp;lt;/dep:artifactId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:version&amp;gt;2.0&amp;lt;/dep:version&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:type&amp;gt;car&amp;lt;/dep:type&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dep:moduleId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;/dep:environment&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:pattern&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:groupId&amp;gt;console.myTX&amp;lt;/name:groupId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:artifactId&amp;gt;myTX&amp;lt;/name:artifactId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/name:pattern&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;/name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; data info in openejb.xml as:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ....
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; so, my question became, how to specify the datasource out of /tomcat/conf/?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks in advance.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rick Curtis wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; John -
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;&amp;gt; &amp;gt; specify a value... I'm assuming that you're using an AI column for your
&lt;br&gt;&amp;gt; &amp;gt; id.
&lt;br&gt;&amp;gt; &amp;gt; I see you're running on MySQL, so try adding the annotation
&lt;br&gt;&amp;gt; &amp;gt; @GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If
&lt;br&gt;&amp;gt; &amp;gt; that
&lt;br&gt;&amp;gt; &amp;gt; doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; -Rick
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; it's
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; as
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; following:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert
&lt;br&gt;&amp;gt; null
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement
&lt;br&gt;&amp;gt; [INSERT
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 6240623
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; John
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3195129.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3192900"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3192900</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-01T18:51:07Z</published>
	<updated>2009-07-01T18:51:07Z</updated>
	<author>
		<name>Michael Dick</name>
	</author>
	<content type="html">At least some of this will be better handled by the OpenEJB / Tomcat folks
&lt;br&gt;and we can certainly cross post the question on their mailing list(s) if
&lt;br&gt;needed.
&lt;br&gt;&lt;br&gt;From an OpenJPA point of view you should be able to specify the connection
&lt;br&gt;properties (openjpa.ConnectionURL, openjpa.ConnectionDriverName, etc.) or
&lt;br&gt;use a jta-data-source in persistence.xml. If you use a jta-data-source then
&lt;br&gt;the only requirement is that the value you provide (ie contextDS) is
&lt;br&gt;available in JNDI. Usually a datasource will be bound to a location like
&lt;br&gt;jdbc/${my datasource name} (coming from a WebSphere background, but I
&lt;br&gt;believe this is fairly common), Tomcat might expect a similar context root -
&lt;br&gt;would have to check Tomcat's doc to be sure.
&lt;br&gt;&lt;br&gt;The error you're getting can indicate a lot of things though :
&lt;br&gt;1. The ConnectionURL is incorrect
&lt;br&gt;2. The UserID &amp; Password aren't correct
&lt;br&gt;3. There's a firewall blocking port 3306
&lt;br&gt;4. MySQL is configured to only accept remote connections to the ejb database
&lt;br&gt;(pretty unlikely, but you could do this).
&lt;br&gt;&lt;br&gt;To eliminate those as possibilities, can you try connecting directly to the
&lt;br&gt;database (ie no JPA / Tomcat / etc)? If you can connect then it's likely
&lt;br&gt;that something is getting in the way.
&lt;br&gt;&lt;br&gt;If you'd rather pursue the JNDI path (ie your questions about openejb.xml
&lt;br&gt;and datasource configuration) then you / we will have to re-post on
&lt;br&gt;users@openejb for expert advice.
&lt;br&gt;&lt;br&gt;-mike
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 4:14 PM, John_canada &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3192900&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;john_woo@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for the quick reply, Rick.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Eventually I found out it was about the datasource config:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; in such case(using Tomcat), the
&lt;br&gt;&amp;gt; my.war/WEB-INF/classes/META-INF/persistence.xml
&lt;br&gt;&amp;gt; 1. should not specify any database info but the datasource id (specified in
&lt;br&gt;&amp;gt; /tomcat/conf/openejb.xml), as
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;contextDS&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if specifying the database info, like
&lt;br&gt;&amp;gt; &amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;value=&amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;...
&lt;br&gt;&amp;gt; then the following error found:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.ArgumentException: A connection could not be
&lt;br&gt;&amp;gt; obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL
&lt;br&gt;&amp;gt; &amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:136)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:78)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:309)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:216)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; 2. create and place up openejb.xml and open-ejb-jar.xml in the same
&lt;br&gt;&amp;gt; METTA-INF folder, companied with persistence.xml, then the created entity
&lt;br&gt;&amp;gt; bean and its data can be found/accessed in run time (in debug), but it's
&lt;br&gt;&amp;gt; not
&lt;br&gt;&amp;gt; persisted in database.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb-jar.xml
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;dep:environment&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:moduleId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:groupId&amp;gt;myEJB&amp;lt;/dep:groupId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:artifactId&amp;gt;EJB&amp;lt;/dep:artifactId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:version&amp;gt;2.0&amp;lt;/dep:version&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dep:type&amp;gt;car&amp;lt;/dep:type&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dep:moduleId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;/dep:environment&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:pattern&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:groupId&amp;gt;console.myTX&amp;lt;/name:groupId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name:artifactId&amp;gt;myTX&amp;lt;/name:artifactId&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/name:pattern&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;/name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; data info in openejb.xml as:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ....
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; so, my question became, how to specify the datasource out of /tomcat/conf/?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks in advance.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rick Curtis wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; John -
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;&amp;gt; &amp;gt; specify a value... I'm assuming that you're using an AI column for your
&lt;br&gt;&amp;gt; &amp;gt; id.
&lt;br&gt;&amp;gt; &amp;gt; I see you're running on MySQL, so try adding the annotation
&lt;br&gt;&amp;gt; &amp;gt; @GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If
&lt;br&gt;&amp;gt; &amp;gt; that
&lt;br&gt;&amp;gt; &amp;gt; doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; -Rick
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3192900&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;john_woo@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; it's
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; as
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; following:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert
&lt;br&gt;&amp;gt; null
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement
&lt;br&gt;&amp;gt; [INSERT
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 6240623
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; John
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3192900.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3191855"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3191855</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-01T14:14:31Z</published>
	<updated>2009-07-01T14:14:31Z</updated>
	<author>
		<name>John_canada</name>
	</author>
	<content type="html">Thanks for the quick reply, Rick.
&lt;br&gt;&lt;br&gt;Eventually I found out it was about the datasource config:
&lt;br&gt;&lt;br&gt;in such case(using Tomcat), the my.war/WEB-INF/classes/META-INF/persistence.xml 
&lt;br&gt;1. should not specify any database info but the datasource id (specified in /tomcat/conf/openejb.xml), as
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;contextDS&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&lt;br&gt;if specifying the database info, like
&lt;br&gt;&amp;lt;property name=&amp;quot;openjpa.ConnectionURL&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; value=&amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;openjpa.ConnectionDriverName&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;then the following error found:
&lt;br&gt;&lt;br&gt;&amp;lt;openjpa-1.2.1-r752877:753278 fatal user error&amp;gt; org.apache.openjpa.persistence.ArgumentException: A connection could not be obtained for driver class &amp;quot;com.mysql.jdbc.Driver&amp;quot; and URL &amp;quot;jdbc:mysql://localhost:3306/ejb&amp;quot;. &amp;nbsp;You may have specified an invalid URL.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:790)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:136)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:120)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:78)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:309)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:216)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:190)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;2. create and place up openejb.xml and open-ejb-jar.xml in the same METTA-INF folder, companied with persistence.xml, then the created entity bean and its data can be found/accessed in run time (in debug), but it's not persisted in database.
&lt;br&gt;&lt;br&gt;openejb-jar.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;dep:environment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:moduleId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:groupId&amp;gt;myEJB&amp;lt;/dep:groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:artifactId&amp;gt;EJB&amp;lt;/dep:artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:version&amp;gt;2.0&amp;lt;/dep:version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;dep:type&amp;gt;car&amp;lt;/dep:type&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dep:moduleId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/dep:environment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;name:cmp-connection-factory&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:pattern&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:groupId&amp;gt;console.myTX&amp;lt;/name:groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name:artifactId&amp;gt;myTX&amp;lt;/name:artifactId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/name:pattern&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/name:cmp-connection-factory&amp;gt;
&lt;br&gt;&lt;br&gt;data info in openejb.xml as:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ....
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&lt;br&gt;the persistence.xml:
&lt;br&gt;&amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; &amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;so, my question became, how to specify the datasource out of /tomcat/conf/?
&lt;br&gt;&lt;br&gt;Thanks in advance.
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;John
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Rick Curtis wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;John -
&lt;br&gt;&lt;br&gt;It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;specify a value... I'm assuming that you're using an AI column for your id.
&lt;br&gt;I see you're running on MySQL, so try adding the annotation
&lt;br&gt;@GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If that
&lt;br&gt;doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&lt;br&gt;-Rick
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;john_woo@canada.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; it's
&lt;br&gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity as
&lt;br&gt;&amp;gt; following:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert null
&lt;br&gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement [INSERT
&lt;br&gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt 6240623
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3191855.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190931"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190931</id>
	<title>Re: did pass params - Attempt to insert null into a non-nullable  column</title>
	<published>2009-07-01T11:31:11Z</published>
	<updated>2009-07-01T11:31:11Z</updated>
	<author>
		<name>Rick Curtis</name>
	</author>
	<content type="html">John -
&lt;br&gt;&lt;br&gt;It looks like you annotated your Person.id to be unique, but you didn't
&lt;br&gt;specify a value... I'm assuming that you're using an AI column for your id.
&lt;br&gt;I see you're running on MySQL, so try adding the annotation
&lt;br&gt;@GeneratedValue(strategy=GenerationType.IDENTITY) to your id column. If that
&lt;br&gt;doesn't work, please post a snippet of your Entity/mapping file(s).
&lt;br&gt;&lt;br&gt;-Rick
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 12:44 PM, John_canada &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190931&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;john_woo@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I deployed openejb.war in tomcat, and tested a web app which used ejb3;
&lt;br&gt;&amp;gt; it's
&lt;br&gt;&amp;gt; very simple: a servlet called a stateless bean, which created an entity as
&lt;br&gt;&amp;gt; following:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; session bean:
&lt;br&gt;&amp;gt; @PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type =
&lt;br&gt;&amp;gt; PersistenceContextType.TRANSACTION)
&lt;br&gt;&amp;gt; private EntityManager manager;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Person p = new Person(name, address);
&lt;br&gt;&amp;gt; manager.persist(p);
&lt;br&gt;&amp;gt; manager.flush();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the persistence.xml:
&lt;br&gt;&amp;gt; &amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;&amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; openejb.xml:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;UserName root
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Password aaa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JtaManaged false
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; However, I got the following error when executing manager.flush();
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert null
&lt;br&gt;&amp;gt; into a non-nullable column: column: ID table: PERSON in statement [INSERT
&lt;br&gt;&amp;gt; INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt 6240623
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's obvious, from
&lt;br&gt;&amp;gt; INSERT INTO person (person_id, address, name)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;VALUES (?, ?, ?)
&lt;br&gt;&amp;gt; [params=(long) 2201, (String) any address, (String) name]} [code=-10,
&lt;br&gt;&amp;gt; state=23000]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the parms values were taken, but did not pass/forward to database - this
&lt;br&gt;&amp;gt; should not be in ejb3 package.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Can anyone tell how to fix it?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; John
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190931.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190581"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190581</id>
	<title>did pass params - Attempt to insert null into a non-nullable column</title>
	<published>2009-07-01T10:44:42Z</published>
	<updated>2009-07-01T10:44:42Z</updated>
	<author>
		<name>John_canada</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I deployed openejb.war in tomcat, and tested a web app which used ejb3; it's very simple: a servlet called a stateless bean, which created an entity as following:
&lt;br&gt;&lt;br&gt;session bean:
&lt;br&gt;@PersistenceContext(unitName=&amp;quot;aUnit&amp;quot;,type = PersistenceContextType.TRANSACTION)
&lt;br&gt;private EntityManager manager;
&lt;br&gt;&lt;br&gt;Person p = new Person(name, address);
&lt;br&gt;manager.persist(p);
&lt;br&gt;manager.flush();
&lt;br&gt;&lt;br&gt;the persistence.xml:
&lt;br&gt;&amp;lt;persistence-unit name=&amp;quot;aUnit&amp;quot; transaction-type=&amp;quot;JTA&amp;quot;&amp;gt;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;provider&amp;gt;org.apache.openjpa.persistence.PersistenceProviderImpl&amp;lt;/provider&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;jta-data-source&amp;gt;myTX&amp;lt;/jta-data-source&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;non-jta-data-source&amp;gt;myNOTX&amp;lt;/non-jta-data-source&amp;gt;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;ejb.Person&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;nbsp;...
&lt;br&gt;&lt;br&gt;openejb.xml:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UserName root
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Password aaa
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Resource id=&amp;quot;myNOTX&amp;quot; type=&amp;quot;DataSource&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcDriver com.mysql.jdbc.Driver
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JdbcUrl jdbc:mysql://localhost:3306/a
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UserName root
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Password aaa
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JtaManaged false
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Resource&amp;gt;
&lt;br&gt;&lt;br&gt;However, I got the following error when executing manager.flush();
&lt;br&gt;org.apache.openjpa.lib.jdbc.ReportingSQLException: Attempt to insert null into a non-nullable column: column: ID table: PERSON in statement [INSERT INTO person (person_id, address, name) VALUES (?, ?, ?)] {prepstmnt 6240623 
&lt;br&gt;INSERT INTO person (person_id, address, name) 
&lt;br&gt;&amp;nbsp; &amp;nbsp; VALUES (?, ?, ?) 
&lt;br&gt;[params=(long) 2201, (String) any address, (String) name]} [code=-10, state=23000]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:866)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:269)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1504)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:151)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:120)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:82)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:89)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:72)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:543)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:105)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:655)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:989)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:592)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.persistence.JtaEntityManager.flush(JtaEntityManager.java:130)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ejb.HelloBean.createPerson(HelloBean.java:31)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $Proxy46.createPerson(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test.HelloServlet.doGet(HelloServlet.java:31)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
&lt;br&gt;&lt;br&gt;&lt;br&gt;It's obvious, from 
&lt;br&gt;INSERT INTO person (person_id, address, name) 
&lt;br&gt;&amp;nbsp; &amp;nbsp; VALUES (?, ?, ?) 
&lt;br&gt;[params=(long) 2201, (String) any address, (String) name]} [code=-10, state=23000]
&lt;br&gt;&lt;br&gt;the parms values were taken, but did not pass/forward to database - this should not be in ejb3 package.
&lt;br&gt;&lt;br&gt;Can anyone tell how to fix it?
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;--
&lt;br&gt;John </content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/did-pass-params---Attempt-to-insert-null-into-a-non-nullable-column-tp3190581p3190581.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190219</id>
	<title>Open JPA 1.2 - getting error &quot;The related type has unjoined subclasses&quot;</title>
	<published>2009-07-01T09:43:08Z</published>
	<updated>2009-07-01T09:43:08Z</updated>
	<author>
		<name>Jeff T Awe</name>
	</author>
	<content type="html">&lt;br&gt;I have the following abstract class with property sysProp on it.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;@Table(name=&amp;quot;DDB_System&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp;@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
&lt;br&gt;&amp;nbsp; &amp;nbsp;@Entity(name=&amp;quot;System&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp;public abstract class System
&lt;br&gt;&amp;nbsp; &amp;nbsp;.....................................
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Column(name=&amp;quot;sysProp1&amp;quot;,length=1024)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Basic
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String sysProp1;
&lt;br&gt;&lt;br&gt;System also has multiple subclasses, each with properties of their own:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;@Table(name=&amp;quot;ComputerSystem&amp;quot;) &amp;nbsp; &amp;nbsp; &amp;nbsp; ** This has multiple concrete
&lt;br&gt;&amp;nbsp; &amp;nbsp;subTypes**
&lt;br&gt;&amp;nbsp; &amp;nbsp;@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
&lt;br&gt;&amp;nbsp; &amp;nbsp;@DiscriminatorValue(value=&amp;quot;ComputerSystem&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp;@Entity(name=&amp;quot;ComputerSystem&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp;public class ComputerSystem extends System
&lt;br&gt;&amp;nbsp; &amp;nbsp;.....................................
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Column(name=&amp;quot;csProp1&amp;quot;,length=1024)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Basic
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String csProp1;
&lt;br&gt;&lt;br&gt;and
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;@DiscriminatorValue(value=&amp;quot;OperatingSystem&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp;@Entity(name=&amp;quot;OperatingSystem&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp;public class OperatingSystem extends System
&lt;br&gt;&amp;nbsp; &amp;nbsp;.....................................
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Column(name=&amp;quot;osProp1&amp;quot;,length=1024)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Basic
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String osProp1;
&lt;br&gt;&lt;br&gt;I have another entity that is directly related to the &amp;quot;System&amp;quot; abstract
&lt;br&gt;class.
&lt;br&gt;&lt;br&gt;@Table(name=&amp;quot;A&amp;quot;)
&lt;br&gt;@Entity(name=&amp;quot;A&amp;quot;)
&lt;br&gt;public class A
&lt;br&gt;........................
&lt;br&gt;&amp;nbsp; &amp;nbsp; @ManyToOne
&lt;br&gt;&amp;nbsp; &amp;nbsp; @PrimaryKeyJoinColumn(name=&amp;quot;SOURCEID&amp;quot;,referencedColumnName=&amp;quot;OID&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; private System Source;
&lt;br&gt;&lt;br&gt;When I try to query over this relationship and include a property from the
&lt;br&gt;abstract class, it fails:
&lt;br&gt;&lt;br&gt;&amp;quot;select m from A m where m.Source.sysProp1 = 'z'&amp;quot;
&lt;br&gt;Caused by: &amp;lt;openjpa-1.2.0-r422266:683325 fatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: Cannot join across
&lt;br&gt;&amp;quot;A.Source&amp;quot;. &amp;nbsp;The related type has unjoined subclasses.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.openjpa.jdbc.meta.strats.RelationStrategies.unjoinable(
&lt;br&gt;RelationStrategies.java:53)
&lt;br&gt;&lt;br&gt;If I change the query to include a property from one of the subTypes, it
&lt;br&gt;fails because it doesn't know about that property:
&lt;br&gt;&amp;quot;select m from A m where m.Source.osProp1 = 'z'&amp;quot;
&lt;br&gt;Caused by: &amp;lt;openjpa-1.2.0-r422266:683325 nonfatal user error&amp;gt;
&lt;br&gt;org.apache.openjpa.persistence.ArgumentException: An error occurred while
&lt;br&gt;parsing the query filter &amp;quot;select m from A m where m.Source.osProp1 = 'z'&amp;quot;.
&lt;br&gt;Error message: No field named &amp;quot;osProp1&amp;quot; in class &amp;quot;class System&amp;quot;.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; at
&lt;br&gt;org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(
&lt;br&gt;AbstractExpressionBuilder.java:118)
&lt;br&gt;&lt;br&gt;An archived post
&lt;br&gt;(&lt;a href=&quot;http://mail-archives.apache.org/mod_mbox/openjpa-users/200711.mbox/%3CBLU121-W4364476C3E2522DB2CE52D818A0@phx.gbl%3E&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://mail-archives.apache.org/mod_mbox/openjpa-users/200711.mbox/%3CBLU121-W4364476C3E2522DB2CE52D818A0@...%3E&lt;/a&gt;)
&lt;br&gt;&amp;nbsp;said to add the @Type annotation to relationship property. &amp;nbsp;When I changed
&lt;br&gt;it to the following, both queries worked as expected:
&lt;br&gt;&amp;nbsp; &amp;nbsp; @ManyToOne
&lt;br&gt;&amp;nbsp; &amp;nbsp; @PrimaryKeyJoinColumn(name=&amp;quot;SOURCEID&amp;quot;,referencedColumnName=&amp;quot;OID&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; @Type(OperatingSystem.class)
&lt;br&gt;&amp;nbsp; &amp;nbsp; private System Source;
&lt;br&gt;&lt;br&gt;My problem is that this lets me set one concrete subType, but I have more
&lt;br&gt;than one. &amp;nbsp;Is there a way to set multiple. &amp;nbsp;Any query going to the other
&lt;br&gt;subType still won't work:
&lt;br&gt;&amp;quot;select m from A m where m.Source.csProp1 = 'z'&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;nbsp; Thanks,
&lt;br&gt;&lt;br&gt;Jeff Awe
&lt;br&gt;&amp;nbsp;Email: &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190219&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jtawe@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp;Dept: ELH &amp;nbsp;Phone: 507-253-1955 &amp;nbsp; &amp;nbsp;T/L: 553-1955
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/Open-JPA-1.2---getting-error-%22The-related-type-has-unjoined-subclasses%22-tp3190219p3190219.html" />
	
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3189879</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T08:47:48Z</published>
	<updated>2009-07-01T08:47:48Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 10:39 AM, ljnelson &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189879&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ljnelson@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You need to follow this pattern when merging:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; final X newThing = em.merge(oldThing);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ...and then &amp;quot;throw out&amp;quot; oldThing, since it is effectively no longer valid.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;The merge is effectively the end of the &amp;quot;operational transaction&amp;quot; so I don't
&lt;br&gt;really care that the original is no good. What I'm doing is this:
&lt;br&gt;&lt;br&gt;get managed entity X
&lt;br&gt;detach X by closing em
&lt;br&gt;edit properties of X
&lt;br&gt;get new em
&lt;br&gt;begin em transaction
&lt;br&gt;merge X
&lt;br&gt;commit em transaction
&lt;br&gt;walk away
&lt;br&gt;&lt;br&gt;What's done at &amp;quot;edit properties&amp;quot; is not sent to the database on commit.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189879&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189879.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3189415"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3198413</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-02T16:23:21Z</published>
	<updated>2009-07-02T16:23:21Z</updated>
	<author>
		<name>Simon Droscher</name>
	</author>
	<content type="html">You might want to also take a look at the &lt;a href=&quot;http://openjpa.apache.org/builds/1.2.1/apache-openjpa-1.2.1/docs/manual/manual.html#openjpa.AutoDetach&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;openjpa.AutoDetach&lt;/a&gt;&amp;nbsp;property.
&lt;br&gt;&lt;br&gt;You can use this to ensure entities are detached on commit, for example.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Daryl Stultz wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message&quot;&gt;On Wed, Jul 1, 2009 at 3:58 PM, Daryl Stultz &amp;lt;daryl@6degrees.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Is there a way to detach a single entity instance without closing the em?
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3198413.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3191491"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3191491</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T13:06:17Z</published>
	<updated>2009-07-01T13:06:17Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 3:58 PM, Daryl Stultz &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3191491&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Is there a way to detach a single entity instance without closing the em?
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I see I can cast my em to OpenJPAEntityManager. Should I use detachCopy,
&lt;br&gt;evict, or detach (which is in the code but not the JavaDocs)? Documentation
&lt;br&gt;is a little thin.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3191491&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3191491.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3191464"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3191464</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T12:58:41Z</published>
	<updated>2009-07-01T12:58:41Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 3:18 PM, Daryl Stultz &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3191464&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I don't know yet if the above test represents the problem my application is
&lt;br&gt;&amp;gt; having
&lt;br&gt;&lt;br&gt;&lt;br&gt;Yes! That's it! In a &amp;quot;web transaction&amp;quot; I retrieved an entity, set my
&lt;br&gt;properties and ended the web transaction which closed the em. Then in the
&lt;br&gt;next web transaction I hit the save button which gets an new em and does the
&lt;br&gt;merge. Which doesn't work. I threw in a em.close() before setting my
&lt;br&gt;properties and it works now. I just don't like doing that - my em might need
&lt;br&gt;to lazy load some stuff later. Is there a way to detach a single entity
&lt;br&gt;instance without closing the em?
&lt;br&gt;&lt;br&gt;Thanks Mike! You were a great help!
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3191464&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3191464.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3191223"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3191223</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T12:18:03Z</published>
	<updated>2009-07-01T12:18:03Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 2:11 PM, Michael Dick &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3191223&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;michael.d.dick@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Hi Daryl,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Here's what I've run and I think it does what you're trying to do.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks for working on this Mike. Your example is good - it's interesting
&lt;br&gt;that it can be sent to the database just by begin/commit as you've shown.
&lt;br&gt;You didn't do quite what I want do. Here's what I want:
&lt;br&gt;&lt;br&gt;MyEntity entity = em.find(MyEntity.class, entityId);
&lt;br&gt;entity.setProperty(20);
&lt;br&gt;assertEquals(6, getValueFromDb(entityId)); // default is 6
&lt;br&gt;assertTrue(em.contains(entity));
&lt;br&gt;// after save, it's the same
&lt;br&gt;entity.save();
&lt;br&gt;assertEquals(20, getValueFromDb(entityId));
&lt;br&gt;assertTrue(em.contains(entity));
&lt;br&gt;// simulate new web transaction (Force detach)
&lt;br&gt;em = getEntityManagerForNewWebTransaction();
&lt;br&gt;assertFalse(em.contains(entity));
&lt;br&gt;entity.setProperty(30);
&lt;br&gt;entity.save();
&lt;br&gt;assertFalse(em.contains(entity)); // entity is not the merged instance
&lt;br&gt;assertEquals(30, getValueFromDb(entityId));
&lt;br&gt;&lt;br&gt;This actually works, to my surprise. Trying to make it look like your
&lt;br&gt;example, I eliminated some problem code. Here's a version that fails on the
&lt;br&gt;last line:
&lt;br&gt;&lt;br&gt;MyEntity entity = em.find(MyEntity.class, entityId);
&lt;br&gt;entity.setProperty(20); // setting this does not automatically update DB
&lt;br&gt;assertEquals(6, getValueFromDb(entityId)); // default is 6
&lt;br&gt;// after save, it's the same
&lt;br&gt;entity.save();
&lt;br&gt;assertEquals(20, getValueFromDb(entityId));
&lt;br&gt;*entity.setProperty(30);*
&lt;br&gt;// simulate new web transaction
&lt;br&gt;em = getEntityManagerForNewWebTransaction();
&lt;br&gt;entity.save(); // does not write new value
&lt;br&gt;assertEquals(30, getValueFromDb(entityId)); // FAILS!!!
&lt;br&gt;&lt;br&gt;I don't know yet if the above test represents the problem my application is
&lt;br&gt;having, but the difference is that the property was set while the entity was
&lt;br&gt;still attached to the old em. Is that expected behavior? If I move the bold
&lt;br&gt;line after em is replaced, it works.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3191223&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3191223.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190788"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190788</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T11:11:55Z</published>
	<updated>2009-07-01T11:11:55Z</updated>
	<author>
		<name>Michael Dick</name>
	</author>
	<content type="html">Hi Daryl,
&lt;br&gt;&lt;br&gt;Here's what I've run and I think it does what you're trying to do. FWIW I've
&lt;br&gt;been using 1.2.2-SNAPSHOT for this test and it's passing for me:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; @Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; public void testDetachUpdateMergeCommit() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EntityManager em = emf.createEntityManager();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Person p = em.find(Person.class, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; em.close(); // force detach
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; em = emf.createEntityManager();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertFalse(em.contains(p));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; p.setIntProperty(new Integer(10));
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Person p2 = em.merge(p);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertFalse(em.contains(p));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertTrue(em.contains(p2));
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // No updates have been flushed to the database yet.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertEquals(2, getPropertyFromDB());
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // commit a transaction to write to db.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; em.getTransaction().begin();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; em.getTransaction().commit();
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // after transaction commits the database will have the new value.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assertEquals(10, getPropertyFromDB());
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;-mike
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 11:28 AM, Daryl Stultz &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190788&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Jul 1, 2009 at 12:17 PM, Michael Dick &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190788&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;michael.d.dick@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; What does myEntity.getEntityManager() return and how is that set into
&lt;br&gt;&amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt; entity (ie is your code managing it, or are getting it from OpenJPA) ?
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm using a thread local variable. I've written a variation of the unit
&lt;br&gt;&amp;gt; test
&lt;br&gt;&amp;gt; that replaces the save() method with direct factory/em handling and
&lt;br&gt;&amp;gt; em.merge
&lt;br&gt;&amp;gt; calls to eliminate the possibility of bad logic in my save() method as well
&lt;br&gt;&amp;gt; as my thread local handling. It didn't make any difference. I can post the
&lt;br&gt;&amp;gt; other version if you like.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Daryl Stultz
&lt;br&gt;&amp;gt; _____________________________________
&lt;br&gt;&amp;gt; 6 Degrees Software and Consulting, Inc.
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;&amp;gt; mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190788&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3190788.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190119"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190119</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T09:28:24Z</published>
	<updated>2009-07-01T09:28:24Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 12:17 PM, Michael Dick &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190119&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;michael.d.dick@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; What does myEntity.getEntityManager() return and how is that set into your
&lt;br&gt;&amp;gt; entity (ie is your code managing it, or are getting it from OpenJPA) ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;I'm using a thread local variable. I've written a variation of the unit test
&lt;br&gt;that replaces the save() method with direct factory/em handling and em.merge
&lt;br&gt;calls to eliminate the possibility of bad logic in my save() method as well
&lt;br&gt;as my thread local handling. It didn't make any difference. I can post the
&lt;br&gt;other version if you like.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190119&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3190119.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3190052"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3190052</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T09:17:03Z</published>
	<updated>2009-07-01T09:17:03Z</updated>
	<author>
		<name>Michael Dick</name>
	</author>
	<content type="html">What does myEntity.getEntityManager() return and how is that set into your
&lt;br&gt;entity (ie is your code managing it, or are getting it from OpenJPA) ?
&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 10:51 AM, Daryl Stultz &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190052&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Wed, Jul 1, 2009 at 11:43 AM, Michael Dick &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190052&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;michael.d.dick@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The
&lt;br&gt;&amp;gt; &amp;gt; PesistenceContext can be thought of as the state of a set of entities in
&lt;br&gt;&amp;gt; &amp;gt; memory (sort of a L1 cache). When the PersistenceContext is flushed your
&lt;br&gt;&amp;gt; &amp;gt; changes will go to the database. When the transaction is committed
&lt;br&gt;&amp;gt; they'll
&lt;br&gt;&amp;gt; &amp;gt; be committed in the DataBase.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (Please see other post for p-code of general pattern.) I *am* committing
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; transaction but the values (that should have been copied to the merged
&lt;br&gt;&amp;gt; instance I ignored) are not written to the db.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Daryl Stultz
&lt;br&gt;&amp;gt; _____________________________________
&lt;br&gt;&amp;gt; 6 Degrees Software and Consulting, Inc.
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;&amp;gt; mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3190052&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3190052.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3189900"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3189900</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T08:51:09Z</published>
	<updated>2009-07-01T08:51:09Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 11:43 AM, Michael Dick &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189900&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;michael.d.dick@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; The
&lt;br&gt;&amp;gt; PesistenceContext can be thought of as the state of a set of entities in
&lt;br&gt;&amp;gt; memory (sort of a L1 cache). When the PersistenceContext is flushed your
&lt;br&gt;&amp;gt; changes will go to the database. When the transaction is committed they'll
&lt;br&gt;&amp;gt; be committed in the DataBase.
&lt;br&gt;&lt;br&gt;&lt;br&gt;(Please see other post for p-code of general pattern.) I *am* committing the
&lt;br&gt;transaction but the values (that should have been copied to the merged
&lt;br&gt;instance I ignored) are not written to the db.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189900&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189900.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3189854"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3189854</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T08:43:38Z</published>
	<updated>2009-07-01T08:43:38Z</updated>
	<author>
		<name>Michael Dick</name>
	</author>
	<content type="html">Hi Daryl,
&lt;br&gt;&lt;br&gt;Some comments based on your post (selected snippets below) :
&lt;br&gt;&lt;br&gt;// push into managed context and replace instance
&lt;br&gt;&amp;gt; entity = em.merge(entity);
&lt;br&gt;&amp;gt; // I thought an update on object would be live to DB, but it's not
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The update is not live to the DB. What you've done here is merge a detached
&lt;br&gt;instance into the PersistenceContext - not into the DB. The
&lt;br&gt;PesistenceContext can be thought of as the state of a set of entities in
&lt;br&gt;memory (sort of a L1 cache). When the PersistenceContext is flushed your
&lt;br&gt;changes will go to the database. When the transaction is committed they'll
&lt;br&gt;be committed in the DataBase.
&lt;br&gt;&lt;br&gt;The remaining issues look like they happen because the entity is trying to
&lt;br&gt;manage itself. As Laird indicated em.merge(myEntity) doesn't add myEntity to
&lt;br&gt;the PersistenceContext, it creates a new copy of myentity. The new copy is
&lt;br&gt;part of the PersistenceContext, but myEntity is not.
&lt;br&gt;&lt;br&gt;-mike
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, Jul 1, 2009 at 9:39 AM, ljnelson &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189854&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ljnelson@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Wed, Jul 1, 2009 at 10:03 AM, Daryl Stultz (via Nabble) &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189854&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml-user+140370-1665331873@...&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189854&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml-user%2B140370-1665331873@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189854&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml-user%2B140370-1665331873@...&lt;/a&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189854&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml-user%252B140370-1665331873@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; To be a little more clear, entity.save() looks like this:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; EntityManager em = getEntityManager();
&lt;br&gt;&amp;gt; &amp;gt; boolean alreadyInTransaction = em.getTransaction().isActive();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if (! alreadyInTransaction) em.getTransaction().begin();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; if (getId() == null) em.persist(this);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; else em.merge(this);
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; if (! alreadyInTransaction) em.getTransaction().commit();
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have to admit to only cursorily (is that a word?) scanning this, but
&lt;br&gt;&amp;gt; remember that merge() has a return value, and the return value supersedes
&lt;br&gt;&amp;gt; the value you passed into it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You need to follow this pattern when merging:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; final X newThing = em.merge(oldThing);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ...and then &amp;quot;throw out&amp;quot; oldThing, since it is effectively no longer valid.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Given that you are merge()ing &amp;quot;this&amp;quot;, that might be difficult. &amp;nbsp;:-D
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I hope that helps at least somewhat. &amp;nbsp;Good luck.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Best,
&lt;br&gt;&amp;gt; Laird
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189415.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189415.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the OpenJPA Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189854.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3189415"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3189415</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T07:39:18Z</published>
	<updated>2009-07-01T07:39:18Z</updated>
	<author>
		<name>ljnelson</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 10:03 AM, Daryl Stultz (via Nabble) &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189415&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ml-user%2B140370-1665331873@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;


To be a little more clear, entity.save() looks like this:
&lt;br&gt;&lt;br&gt;EntityManager em = getEntityManager();
&lt;br&gt;boolean alreadyInTransaction = em.getTransaction().isActive(); &lt;/blockquote&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;if (! alreadyInTransaction) em.getTransaction().begin();
&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;if (getId() == null) em.persist(this); &lt;/blockquote&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;
else em.merge(this);&lt;br&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot; class=&quot;gmail_quote&quot;&gt;if (! alreadyInTransaction) em.getTransaction().commit();
&lt;/blockquote&gt;&lt;br&gt;I have to admit to only cursorily (is that a word?) scanning this, but remember that merge() has a return value, and the return value supersedes the value you passed into it.&lt;br&gt;&lt;br&gt;You need to follow this pattern when merging:&lt;br&gt;
&lt;br&gt;final X newThing = em.merge(oldThing);&lt;br&gt;&lt;br&gt;...and then &amp;quot;throw out&amp;quot; oldThing, since it is effectively no longer valid.&lt;br&gt;&lt;br&gt;Given that you are merge()ing &amp;quot;this&amp;quot;, that might be difficult.  :-D&lt;br&gt;
&lt;br&gt;I hope that helps at least somewhat.  Good luck.&lt;br&gt;&lt;br&gt;Best,&lt;br&gt;Laird&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189415.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3189174"/>
</entry>

<entry>
	<id>tag:n2.nabble.com,2006:post-3189174</id>
	<title>Re: State Management, changed properties on detached object not  saving</title>
	<published>2009-07-01T07:02:36Z</published>
	<updated>2009-07-01T07:02:36Z</updated>
	<author>
		<name>Daryl Stultz</name>
	</author>
	<content type="html">On Wed, Jul 1, 2009 at 8:59 AM, Daryl Stultz &amp;lt;&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189174&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Hello,
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;To be a little more clear, entity.save() looks like this:
&lt;br&gt;&lt;br&gt;EntityManager em = getEntityManager();
&lt;br&gt;boolean alreadyInTransaction = em.getTransaction().isActive();
&lt;br&gt;if (! alreadyInTransaction) em.getTransaction().begin();
&lt;br&gt;if (getId() == null) em.persist(this);
&lt;br&gt;else em.merge(this);
&lt;br&gt;if (! alreadyInTransaction) em.getTransaction().commit();
&lt;br&gt;&lt;br&gt;The manual states:
&lt;br&gt;&lt;br&gt;The merge method returns a managed copy of the given detached entity. *Changes
&lt;br&gt;&amp;gt; made to the persistent state of the detached entity are applied to this
&lt;br&gt;&amp;gt; managed instance. *
&lt;br&gt;&lt;br&gt;&lt;br&gt;I am assuming that the changes should be flushed to the database upon
&lt;br&gt;commit. I think my unit test shows that this is not happening. That seems
&lt;br&gt;highly unlikely, so if someone could prove me wrong, that would be great.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Daryl Stultz
&lt;br&gt;_____________________________________
&lt;br&gt;6 Degrees Software and Consulting, Inc.
&lt;br&gt;&lt;a href=&quot;http://www.6degrees.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.6degrees.com&lt;/a&gt;&lt;br&gt;mailto:&lt;a href=&quot;http://n2.nabble.com/user/SendEmail.jtp?type=node&amp;node=3189174&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;daryl@...&lt;/a&gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://n2.nabble.com/State-Management%2C-changed-properties-on-detached-object-not-saving-tp3188832p3189174.html" />
	<thr:in-reply-to ref="tag:n2.nabble.com,2006:post-3188832"/>
</entry>

</feed>
