0
私はswingとJPAでプロジェクトを作成していますが、正常に動作しますが、persistence.xmlファイルなしでJPAを使用するようにこのプロジェクトを変更したいと考えています。私はいくつかの例を探していますが、まだ解決策を見つけていません。私は春には方法があるが、スイングで私は知らないことを知っている。persistence.xmlのないプロジェクトJPAをスイングしますか?
どうすればいいですか?
私はswingとJPAでプロジェクトを作成していますが、正常に動作しますが、persistence.xmlファイルなしでJPAを使用するようにこのプロジェクトを変更したいと考えています。私はいくつかの例を探していますが、まだ解決策を見つけていません。私は春には方法があるが、スイングで私は知らないことを知っている。persistence.xmlのないプロジェクトJPAをスイングしますか?
どうすればいいですか?
私はこの問題を解決しました。 JPAは常にpersistence.xml
を必要としますが、persistence-unit
を1つだけ設定して単純なpersistence.xml
を作成してから、接続やその他の値を定義するクラスを作成することができます。ここ
persistence.xmlの
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
<persistence-unit name="default">
<exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>
</persistence>
、ここで私はあなたが、あなたの永続性ユニットを構成することを期待するにはどうすればよいの値
import java.util.HashMap;
import java.util.Map;
import javax.persistence.EntityManagerFactory;
import javax.persistence.spi.PersistenceUnitTransactionType;
import org.eclipse.persistence.jpa.PersistenceProvider;
import org.eclipse.persistence.config.PersistenceUnitProperties;
/**
*
* @author fernando
*/
public class JPAUtils {
private static EntityManagerFactory emf;
private static final String PERSISTENCE_UNIT = "default";
private static final String DB_NAME = "iguanaauto_db";
public static String IP_SERVER = "127.000.000.001";
/** return an entitymanagerfactory */
public static EntityManagerFactory getEntityManagerFactory(){
if(emf == null){
PersistenceProvider pp = new PersistenceProvider();
Map<String, String> properties = new HashMap<String, String>();
properties.put(PersistenceUnitProperties.TRANSACTION_TYPE, PersistenceUnitTransactionType.RESOURCE_LOCAL.name());
properties.put(PersistenceUnitProperties.JDBC_DRIVER, "com.mysql.jdbc.Driver");
properties.put(PersistenceUnitProperties.JDBC_URL, "jdbc:mysql://" + IP_SERVER + ":3306/" + DB_NAME + "?createDatabaseIfNotExist=true");
properties.put(PersistenceUnitProperties.JDBC_USER, "root");
properties.put(PersistenceUnitProperties.JDBC_PASSWORD, "");
properties.put(PersistenceUnitProperties.DDL_GENERATION, PersistenceUnitProperties.CREATE_OR_EXTEND);
properties.put(PersistenceUnitProperties.DDL_GENERATION_MODE, PersistenceUnitProperties.DDL_DATABASE_GENERATION);
properties.put(PersistenceUnitProperties.LOGGING_LEVEL, "FINE");
emf = pp.createEntityManagerFactory(PERSISTENCE_UNIT, properties);
}
return emf;
}
}
を設定するクラス? –
@NicolasFilotto私は方法が春のように構成するクラスを作成することだと思う:http://stackoverflow.com/questions/30905908/jpa-without-persistence-xml – FernandoPaiva
@BillyFrost私は、 .xml'を設定し、 'persistence-unit'を設定した後、EntityManagerを返すためのJavaクラスを作成した後、正常に動作しますが、このpersistence.xmlをプログラマチックに作成する方法はありますか? – FernandoPaiva