[ 
https://issues.apache.org/jira/browse/OPENJPA-1887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12979804#action_12979804
 ] 

Rick Curtis commented on OPENJPA-1887:
--------------------------------------

Wendy -

As I mentioned before, I found that the eclipse enhancer isn't working[1] as 
advertised. I'd suggest using the maven plugin, or use the ant based 
enhancer[2].

[1] https://issues.apache.org/jira/browse/OPENJPA-1879
[2] http://openjpa.apache.org/entity-enhancement.html (@See Build Time 
Enhancement)

Thanks,
Rick

> eclipse bytecode enhancer ignoring annotations
> ----------------------------------------------
>
>                 Key: OPENJPA-1887
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1887
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: Enhance
>    Affects Versions: 1.2.2, 2.0.1
>         Environment: windows xp, eclipse 3.5 bytecode enhance OpenJPA Eclipse 
> Feature 1.0.0.201001181728
> OpenJPA 1.2.2
>            Reporter: wendy gibbons
>
> This is long and very detailed as it is the result of a discussion on 
> http://openjpa.208410.n2.nabble.com/beans-Enitiy-annotation-and-bytcode-enhancement-td5380244.html#a5744274
> when i use the eclipse bytecode enhancer the annotation 
> @Entity(name="testTable") is ignored and all youhave available if the class 
> name
> BEAN:
> @Entity(name="testTable")
> @Table(name = "cocktails") 
> public class TestBean implements IBean{
>       Integer id;
>     String data1;
>    
>     @Id
>     @GeneratedValue(strategy = GenerationType.IDENTITY)
>     @Column(name = "id", unique = true, nullable = false)
>     public Integer getId() {
>             return id;
>     }
>    
>     public void setId(Integer id_) {
>             id = id_;
>     }
>    
>     @Column(name="name")
>     public String getData1() {
>             return data1;
>     }
>    
>     public void setData1(String data1_) {
>             data1 = data1_;
>     }
> }
> DAO:
> public class TestDAO extends BaseDAO<TestBean> {
>       @Override
>       public List<TestBean> findAll() {
>               return findAll("testTable");
>       }
> }
> main:
> public static void main(String[] args) {
>               TestDAO dao = new TestDAO();
>               List<TestBean> findAll = dao.findAll();
>               for (TestBean testBean : findAll) {
>                       System.out.println(testBean.getData1());
>               }
>               
>       }
> persistence.xml:
> <persistence-unit name="TestPU"
>               transaction-type="RESOURCE_LOCAL">
>               <provider>
>                       org.apache.openjpa.persistence.PersistenceProviderImpl
>               </provider>
>               <class>com.test.dao.Cocktail</class>
>               <class>com.test.dao.TestBean</class>
> ...
> creating a main and selecting from TestBean (no enhancement) i get:
> 16-Nov-2010 15:42:03 com.test.dao.EntityManagerHelper log
> INFO: finding allTest
> 110  TestPU  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.2
> 250  TestPU  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class 
> "org.apache.openjpa.jdbc.sql.MySQLDictionary".
> 781  TestPU  INFO   [main] openjpa.Enhance - Creating subclass for "[class 
> com.test.dao.Cocktail, class com.test.dao.TestBean]". This means that your 
> application will be less efficient and will consume more memory than it would 
> if you ran the OpenJPA enhancer. Additionally, lazy loading will not be 
> available for one-to-one and many-to-one persistent attributes in types using 
> field access; they will be loaded eagerly instead.
> 1594  TestPU  TRACE  [main] openjpa.jdbc.SQL - <t 31212095, conn 25254907> 
> executing prepstmnt 21465667 SELECT t0.id, t0.name, t0.activeYN FROM 
> cocktails t0 ORDER BY t0.id ASC
> 1610  TestPU  TRACE  [main] openjpa.jdbc.SQL - <t 31212095, conn 25254907> 
> [16 ms] spent 
> running using the runtime enhancer: (putting 
> -javaagent:C:\JavaProjects\OpenJpaTest\WebContent\WEB-INF\lib\openjpa-1.2.2.jar
>  in the run configuration arguments)
> 16-Nov-2010 15:44:11 com.test.dao.EntityManagerHelper log
> INFO: finding allTest
> 141  TestPU  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.2
> 235  TestPU  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class 
> "org.apache.openjpa.jdbc.sql.MySQLDictionary".
> 1829  TestPU  TRACE  [main] openjpa.jdbc.SQL - <t 3841429, conn 4176892> 
> executing prepstmnt 30702379 SELECT t0.id, t0.name, t0.activeYN FROM 
> cocktails t0 ORDER BY t0.id ASC
> 1860  TestPU  TRACE  [main] openjpa.jdbc.SQL - <t 3841429, conn 4176892> [31 
> ms] spent 
> And using the eclipse bytecode enhancer plugin:
> 16-Nov-2010 15:45:32 com.test.dao.EntityManagerHelper log
> INFO: finding allTest
> 109  TestPU  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.2
> 250  TestPU  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class 
> "org.apache.openjpa.jdbc.sql.MySQLDictionary".
> 16-Nov-2010 15:45:33 com.test.dao.EntityManagerHelper log
> SEVERE: find all  failed name failed
> <openjpa-1.2.2-r422266:898935 nonfatal user error> 
> org.apache.openjpa.persistence.ArgumentException: An error occurred while 
> parsing the query filter "select model from testTable model order by 
> model.id". Error message: The name "testTable" is not a recognized entity or 
> identifier. Perhaps you meant TestBean, which is a close match. Known entity 
> names: [TestBean, Cocktail]
>         at 
> org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)
>  .
> Trying now with the latest version of openjpa jar tested with openJPA  2.0.1, 
> and this also fails

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to