Advertisement
Guest User

Untitled

a guest
Apr 19th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. @Entity
  2. @Multitenant(MultitenantType.TABLE_PER_TENANT)
  3. @TenantTableDiscriminator(type = TenantTableDiscriminatorType.SCHEMA, contextProperty = PersistenceUnitProperties.MULTITENANT_PROPERTY_DEFAULT)
  4. public class UserAccount implements Serializable {
  5. ......
  6. }
  7.  
  8. <persistence-unit name="GroupBuilderPU" transaction-type="RESOURCE_LOCAL">
  9. <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
  10. <class>Includes all tenant table class</class>
  11. <properties>
  12. <property name="eclipselink.cache.shared.default" value="false"/>
  13. <!-- container isn upcloud ??-->
  14. <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/?rewriteBatchedStatements=true&characterEncoding=UTF-8&connectionCollation=utf8_general_ci&zeroDateTimeBehavior=convertToNull&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8&characterEncoding=utf8&characterEncoding=UTF-8&characterSetResults=UTF-8"/>
  15. <property name="javax.persistence.jdbc.user" value="root"/>
  16. <property name="javax.persistence.jdbc.password" value="root"/>
  17.  
  18. <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
  19. <property name="eclipselink.ddl-generation" value="create-or-extend-tables"/>
  20. <property name="eclipselink.jdbc.batch-writing" value="JDBC"/>
  21. <property name="eclipselink.jdbc.batch-writing.size" value="1000"/>
  22. <property name="hibernate.connection.useUnicode" value="true"/>
  23. <property name="hibernate.connection.characterEncoding" value="UTF-8"/>
  24. </properties>
  25. </persistence-unit>
  26.  
  27. public static EntityManager createTenantSpecificEntityManager(){
  28. EntityManager em = Persistence.createEntityManagerFactory(GroupBuilderApp.PERSISTENCE_UNIT).createEntityManager(getProperties());
  29.  
  30. return em;
  31. }
  32.  
  33. private static Map<String, Object> getProperties(){
  34. Map<String, Object> properties = new HashMap<>();
  35. properties.put("javax.persistence.jdbc.url", getDataBaseConnectionURL(COMPANY_NAME_AS_TENENT_ID));
  36.  
  37. return properties;
  38. }
  39. public static String getDataBaseConnectionURL(String schemaName){
  40. String str = "jdbc:mysql://localhost:3306/?rewriteBatchedStatements=true&characterEncoding=UTF-8&connectionCollation=utf8_general_ci&zeroDateTimeBehavior=convertToNull&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8&characterEncoding=utf8&characterEncoding=UTF-8&characterSetResults=UTF-8";//for testing purpose
  41. StringBuilder sb = new StringBuilder(str);
  42. sb.insert(sb.indexOf("?"), schemaName);
  43. return sb.toString();
  44. }
  45.  
  46. em = createTenantSpecificEntityManager();
  47. em.getTransaction().begin();
  48. em.setProperty(EntityManagerProperties.MULTITENANT_PROPERTY_DEFAULT, GroupBuilderApp.COMPANY_NAME_AS_TENENT_ID);
  49. .......
  50. Do any operation here
  51. .......
  52. em.getTransaction().commit();
  53. em.close();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement