2015-12-09 2 views
0

Мне нужно использовать множители единиц сохранения с различными свойствами (в моем случае базы данных MySQL и Oracle). В файле persistence.xml я определяю две разные единицы персистентности и перечисляю только классы объектов.Возможно ли найти все доступные свойства EntityManager?

свойства могут быть установлены в persitence.xml с

<properties> <property name="..." value="..." /> ...

Im делает его в классе Java, прежде чем создавать EntityManager, потому что я должен использовать различные свойства (которые я читал раньше):

 EntityManagerFactory factory; 
     ... 
     HashMap<String, String> dbProperties = new HashMap<String, String>(); 
     dbProperties.put("javax.persistence.jdbc.driver", driver); 
     dbProperties.put("javax.persistence.jdbc.url", url); 
     dbProperties.put("javax.persistence.jdbc.user", user); 
     dbProperties.put("javax.persistence.jdbc.password", password); 
     dbProperties.put("eclipselink.ddl-generation", "none"); 
     dbProperties.put("eclipselink.ddl-generation.output-mode", "database"); 

     factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, dbProperties); 
     EntityManager em = factory.createEntityManager(); 
     ... 

Для Oracle мне нужно динамически устанавливать схему (если возможно), а не жестко закодированную в аннотации @Table в каждом классе Entity. И я предполагаю, что будут другие свойства, которые мне нужно установить. Поэтому мой вопрос: есть ли способ найти все доступные свойства для EntityManager?

ответ

1

Вы можете найти стандартные свойства JPA на соответствующем JSR. Для JPA 2.1 (JSR 338) вы найдете их в главе 8.2.1.9 документа. Вы можете загрузить документ there.

Для конкретных свойств реализации вы можете найти их в документации по реализации, которую вы используете. Для EclipseLink, который, кажется, используется вами, вы найдете их there.

Смежные вопросы