// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @Setter
// public class AssetRepository extends OrmRepository {
//     public static final String BeanNameDs = "assetDataSource";
//     public static final String BeanNameEmf = "assetEntityManagerFactory";
//     public static final String BeanNameTx = "assetTransactionManager";
// 
//     @PersistenceContext(unitName = BeanNameEmf)
//     private EntityManager em;
// 
//     @Override
//     public EntityManager em() {
//         return em;
//     }
// 
//     /** 資産スキーマのHibernateコンポーネントを生成します。 */
//     @ConfigurationProperties(prefix = "extension.datasource.asset")
//     @Data
//     @EqualsAndHashCode(callSuper = false)
//     public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//         private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//         public DataSource dataSource() {
//             return super.dataSource();
//         }
//         
//         public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//                 final DataSource dataSource) {
//             return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//         }
// 
//         public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//             return jpa.transactionManager(emf);
//         }
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @Setter
// public class AssetRepository extends OrmRepository {
//     public static final String BeanNameDs = "assetDataSource";
//     public static final String BeanNameEmf = "assetEntityManagerFactory";
//     public static final String BeanNameTx = "assetTransactionManager";
// 
//     @PersistenceContext(unitName = BeanNameEmf)
//     private EntityManager em;
// 
//     @Override
//     public EntityManager em() {
//         return em;
//     }
// 
//     /** 資産スキーマのHibernateコンポーネントを生成します。 */
//     @ConfigurationProperties(prefix = "extension.datasource.asset")
//     @Data
//     @EqualsAndHashCode(callSuper = false)
//     public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//         private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//         public DataSource dataSource() {
//             return super.dataSource();
//         }
//         
//         public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//                 final DataSource dataSource) {
//             return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//         }
// 
//         public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//             return jpa.transactionManager(emf);
//         }
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @ConfigurationProperties(prefix = "extension.datasource.asset")
// @Data
// @EqualsAndHashCode(callSuper = false)
// public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//     private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//     public DataSource dataSource() {
//         return super.dataSource();
//     }
//         
//     public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//             final DataSource dataSource) {
//         return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//     }
// 
//     public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//         return jpa.transactionManager(emf);
//     }
// }


import static sample.microasset.context.orm.AssetRepository.*;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.*;
import org.springframework.orm.jpa.*;
import sample.microasset.context.orm.AssetRepository;
import sample.microasset.context.orm.AssetRepository.AssetDataSourceProperties;
package sample.microasset;





/**
 * 資産ドメインのデータベース接続定義を表現します。
 */
@Configuration
@EnableConfigurationProperties({AssetDataSourceProperties.class})
public class MicroAssetDbConfig {
    
    @Bean
    @DependsOn(BeanNameEmf)
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @Setter
// public class AssetRepository extends OrmRepository {
//     public static final String BeanNameDs = "assetDataSource";
//     public static final String BeanNameEmf = "assetEntityManagerFactory";
//     public static final String BeanNameTx = "assetTransactionManager";
// 
//     @PersistenceContext(unitName = BeanNameEmf)
//     private EntityManager em;
// 
//     @Override
//     public EntityManager em() {
//         return em;
//     }
// 
//     /** 資産スキーマのHibernateコンポーネントを生成します。 */
//     @ConfigurationProperties(prefix = "extension.datasource.asset")
//     @Data
//     @EqualsAndHashCode(callSuper = false)
//     public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//         private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//         public DataSource dataSource() {
//             return super.dataSource();
//         }
//         
//         public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//                 final DataSource dataSource) {
//             return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//         }
// 
//         public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//             return jpa.transactionManager(emf);
//         }
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @Setter
// public class AssetRepository extends OrmRepository {
//     public static final String BeanNameDs = "assetDataSource";
//     public static final String BeanNameEmf = "assetEntityManagerFactory";
//     public static final String BeanNameTx = "assetTransactionManager";
// 
//     @PersistenceContext(unitName = BeanNameEmf)
//     private EntityManager em;
// 
//     @Override
//     public EntityManager em() {
//         return em;
//     }
// 
//     /** 資産スキーマのHibernateコンポーネントを生成します。 */
//     @ConfigurationProperties(prefix = "extension.datasource.asset")
//     @Data
//     @EqualsAndHashCode(callSuper = false)
//     public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//         private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//         public DataSource dataSource() {
//             return super.dataSource();
//         }
//         
//         public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//                 final DataSource dataSource) {
//             return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//         }
// 
//         public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//             return jpa.transactionManager(emf);
//         }
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @ConfigurationProperties(prefix = "extension.datasource.asset")
// @Data
// @EqualsAndHashCode(callSuper = false)
// public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//     private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//     public DataSource dataSource() {
//         return super.dataSource();
//     }
//         
//     public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//             final DataSource dataSource) {
//         return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//     }
// 
//     public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//         return jpa.transactionManager(emf);
//     }
// }


// Path: micro-asset/src/main/java/sample/microasset/MicroAssetDbConfig.java
import static sample.microasset.context.orm.AssetRepository.*;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.*;
import org.springframework.orm.jpa.*;
import sample.microasset.context.orm.AssetRepository;
import sample.microasset.context.orm.AssetRepository.AssetDataSourceProperties;

package sample.microasset;





/**
 * 資産ドメインのデータベース接続定義を表現します。
 */
@Configuration
@EnableConfigurationProperties({AssetDataSourceProperties.class})
public class MicroAssetDbConfig {
    
    @Bean
    @DependsOn(BeanNameEmf)
    AssetRepository assetRepository() {