mysql - Empty DataBase when i use JPA2 with Hibernate -
i have easy console application jpa.
package com.concretepage.entity; import javax.persistence.*; @entity @table(name="farmer") @namedquery(name = "farmer.getall", query = "select farmer a") public class farmer { @id @column(name="id") private int id; @column(name="name") private string name; @column(name="village") private string village; public int getid() { return id; } public void setid(int id) { this.id = id; } public string getname() { return name; } public void setname(string name) { this.name = name; } public string getvillage() { return village; } public void setvillage(string village) { this.village = village; } } package com.concretepage; import com.concretepage.entity.farmer; import javax.persistence.entitymanager; import javax.persistence.entitymanagerfactory; import javax.persistence.persistence; import javax.persistence.typedquery; import java.util.list; public class jpademo { private static final entitymanagerfactory emfactory; static { emfactory = persistence.createentitymanagerfactory("com.concretepage"); } public static entitymanager getentitymanager(){ return emfactory.createentitymanager(); } public static void main(string[] args) { entitymanager em = getentitymanager(); em.gettransaction().begin(); farmer farmer = em.find(farmer.class, 3); system.out.println(farmer); typedquery<farmer> namedquery = em.createnamedquery("farmer.getall", farmer.class); list<farmer> farmers = namedquery.getresultlist(); system.out.println(farmers); system.out.println("done"); } } <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="com.concretepage"> <description>jpa test</description> <provider>org.hibernate.ejb.hibernatepersistence</provider> <class>com.concretepage.entity.farmer</class> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/test"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> </properties> </persistence-unit> </persistence>
methods em.find(...) , namedquery.getresultlist() return true responses! everythink'is ok :) when use code in web service application:
@stateless public class testservice { @persistencecontext(unitname = "maindb") private entitymanager em; public farmer add(farmer farmer){ farmer = em.merge(farmer); return farmer; } public farmer get(integer id){ return em.find(farmer.class, id); } public list<farmer> getall(){ typedquery<farmer> namedquery = em.createnamedquery("farmer.getall", farmer.class); return namedquery.getresultlist(); } } <persistence-unit name="maindb" transaction-type="jta"> <provider>org.hibernate.jpa.hibernatepersistenceprovider</provider> <class>model.farmer</class> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/test"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> </properties> </persistence-unit>
if use:
<property name="hibernate.hbm2ddl.auto" value="validate"/> or not use
recieve exeption: org.hibernate.hibernateexception: missing table if use:
<property name="hibernate.hbm2ddl.auto" value="update"/>
recieve null response em.find(...) , namedquery.getresultlist(), table , data exist! how can use curent db , data?
Comments
Post a Comment