Я новичок в Java, и у меня есть 3 вопроса о Springboot в Java
1 - Это мой BaseRepository класс
BaseRepository
@Repository @Transactional public class BaseBaseRepository<Entity extends Base> implements IBaseRepository<Entity> { private SessionFactory sessionFactory; public BaseBaseRepository(SessionFactory sessionFactory) // this line give me an error : Could not autowire. No beans of 'sessionFactory' type found. when i put @Autowired nothing changed { this.sessionFactory = sessionFactory; } @Override public Entity Add(Entity entity) { try { var session = sessionFactory.getCurrentSession(); session.beginTransaction(); session.save(entity); session.flush(); } catch (Exception e) { throw e; } return entity; } // other method }
2- Мой второй вопрос - это мое приложение applicationContext-dataSource.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd"> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/datasource"/> <property name="lookupOnStartup" value="true"/> <property name="proxyInterface" value="javax.sql.DataSource"/> </bean> </beans>
и его my applicationContext-hibernate.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <import resource="applicationContext-dataSource.xml"/> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" p:dataSource-ref="dataSource" p:mappingResources="com.payment.Repository.ModelAndMapper.BaseModel.Acceptor.Acceptor.hbm.xml"> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="eventListeners"> <map> <entry key="merge"> <bean class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/> </entry> </map> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory"/> <context:annotation-config/> <tx:annotation-driven/> <context:mbean-export/> <bean id="BaseBaseRepository" class="com.payment.Repository.Implement.BaseBaseRepository"/> </beans>
Но при весенней загрузке у меня нет web.xml , чтобы сказать, используйте эту конфигурацию.
что мне делать?
3 - И последний вопрос. Есть ли какое-нибудь программное обеспечение, которое вводит мою модель Java и дает мне файл hbm.xml?
hbm.xml
Используйте следующий код
@Configuration @ImportResource({"classpath*:applicationContext-hibernate.xml"}) public class HibernateConfiguration { }