2015-11-11 3 views
0

Я участвую в обучении использовать Spring & спящий режим. Теперь я сталкиваюсь с некоторыми проблемами со многими и многими отношениями в спящем режиме. Мои данные не сохраняются в таблице jon. Я не знаю, почему. Пожалуйста, помогите мне.
У меня есть два класса домена вызова Проекты & Технология.
это мои отображения в этих двух классах
класса проекта: -Hibernate Многие для многих отношений не работают

@ManyToMany 
@JoinTable(name="project_technology", 
     joinColumns={@JoinColumn(name="projectId")}, 
     inverseJoinColumns={@JoinColumn(name="technologyId")}) 
public List<Technology> getTechnology() { 
    return technology; 
} 

класс технологии: -

@ManyToMany 
@JoinTable(name="project_technology", 
      joinColumns={@JoinColumn(name="technologyId")}, 
      inverseJoinColumns={@JoinColumn(name="projectId")}) 
public List<Projects> getProjects() { 
    return projects; 
} 

в моем DAO слое

getSession().beginTransaction(); 
getHibernateTemplate().save(projects); 
getHibernateTemplate().clear() 

Используется для сохранения данных. Он не показывает ошибки, но данные не сохраняются в таблице соединений.

Когда я использую

Session session = getSession(); 
Transaction transaction = session.beginTransaction(); 
session.save(projects); 
transaction.commit(); 
session.close(); 

сохранить, данные правильно сохранить в table.but присоединиться после сохранения Im получает эту ошибку

org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: Transaction not successfully started 

Моей applicationContext.xml

<bean id="mySessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="hibernateDataSourse" /> 
    <property name="annotatedClasses"> 
     <list>    
      <value>com.sla.tecprof.domain.Technology</value>    
     </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
     </props> 
    </property> 
</bean> 

<bean id="transactionProxy" 
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" 
    abstract="true" lazy-init="true"> 
    <property name="transactionManager" ref="hibernateTransactionManager" /> 
    <property name="transactionAttributeSource" ref="transactionAttributeSource" /> 
    <property name="preInterceptors"> 
     <list> 
      <ref bean="exceptionInterceptor" /> 
      <ref bean="TransactionPointCutAdvisor" /> 
     </list> 
    </property> 

    <property name="postInterceptors"> 
     <list> 
      <ref bean="hibernateInterceptor" /> 
     </list> 
    </property> 

    <property name="proxyTargetClass" value="true" /> 
</bean> 
+0

Это не похоже, многие-ко-многим вопрос. Проверьте свой сервисный уровень, он аннотируется Transactional, если нет, то аннотируйте его. –

+0

Благодарим за комментарий. Осталась та же проблема sir – SkyMicro

+0

Тогда ваш конфиг неправильный, потому что это не проблема с отображением. –

ответ

0

вы следует использовать только @JoinColum Annotation с одной стороны.

@ManyToMany 
@JoinTable(name="project_technology", 
     joinColumns={@JoinColumn(name="projectId")}, 
     inverseJoinColumns={@JoinColumn(name="technologyId")}) 
public List<Technology> getTechnology() { 
    return technology; 
} 

@ManyToMany(fetch = FetchType.LAZY, mappedBy = "technology") 
public List<Projects> getProjects() { 
    return projects; 
} 

Большой ресурс для Hibernate аннотации: http://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example-annotation/

0

Я нашел solution.This что я сделал в моей DAO Леер

Session session = getHibernateTemplate().getSessionFactory().openSession(); 
     Transaction transaction = session.beginTransaction(); 
     session.save(projects); 
     transaction.commit(); 
     session.close(); 
Смежные вопросы