Нет EntityManager с фактической транзакцией, доступной для текущего потока с использованием Spring MVC и JPA EclipselinlJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Нет EntityManager с фактической транзакцией, доступной для текущего потока с использованием Spring MVC и JPA Eclipselinl

Сообщение Anonymous »

Я настраиваю свой проект и пробовал решения, упомянутые здесь и там, но все равно получаю ту же ошибку. Только с @PersistenceContext(type=PersistenceContextType.EXTENDED) я не получаю исключений, но не отражает операции обновления/сохранения/удаления.

applicationContext.xml

























applicationDispatcher-servlet.xml






web.xml

MyApp

index.jsp


applicationDispatcher
org.springframework.web.servlet.DispatcherServlet
1




applicationDispatcher
*.go


org.springframework.web.context.ContextLoaderListener



ApplicationController.java

package com.app.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.app.model.Country;
import com.app.services.TestService;

@Controller
public class ApplicationController {
@Autowired
private HttpServletRequest request;
@Autowired
private TestService serv;

@RequestMapping(value="/hellotest.go", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody Country sayHelloTest2(@RequestBody Country country) {
Country pais=new Country();
pais.setCountryName("Yunaites");
pais.setId(100);
pais.setPopulation(1000);
//model.addAttribute("greeting", "Hello World Again, from Spring 4 MVC");
//TestService serv=new TestService();
serv.guardaTest();
country.toString();
return pais;
}
}


TestService.java

package com.app.services;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import javax.persistence.PersistenceUnit;
import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.app.db.FirstRepository;
import com.app.entity.CatDivision;

@Service
public class TestService {
@Autowired
FirstRepository repo;

public void guardaTest(){
repo.register(null);
}

public FirstRepository getRepo() {
return repo;
}

public void setRepo(FirstRepository repo) {
this.repo = repo;
}

}


FirstRepository.java

package com.app.db;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;

import com.app.entity.CatDivision;

@Transactional
//@Scope(proxyMode = ScopedProxyMode)
@Repository
public class FirstRepository {

@PersistenceContext(type=PersistenceContextType.EXTENDED)
private EntityManager em;

public EntityManager getEm() {
return em;
}

public void setEm(EntityManager em) {
this.em = em;
}
@Transactional
public void register(CatDivision division) {
// Save employee
CatDivision div1=this.em.find(CatDivision.class, 1);
System.out.println("Div:"+div1);
CatDivision div=new CatDivision();
div.setActivo(1);
div.setNombre("Test");

//div.setMbcareas(mbcareas);
this.em.persist(div);
}

}


CatDivision.java

package com.app.entity;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;

/**
* The persistent class for the mbcdivisio database table.
*
*/
@Entity
@Table(name="mbcdivisio")
@NamedQuery(name="CatDivision.findAll", query="SELECT c FROM CatDivision c")
public class CatDivision implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer iddivisio;

private Integer activo;

private String nombre;

//bi-directional many-to-one association to CatArea
@OneToMany(mappedBy="mbcdivisio")
private List mbcareas;

public CatDivision() {
}

public CatDivision(Integer iddivisio) {
this.iddivisio=iddivisio;
}

public Integer getIddivisio() {
return this.iddivisio;
}

public void setIddivisio(Integer iddivisio) {
this.iddivisio = iddivisio;
}

public Integer getActivo() {
return this.activo;
}

public void setActivo(Integer activo) {
this.activo = activo;
}

public String getNombre() {
return this.nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public List getMbcareas() {
return this.mbcareas;
}

public void setMbcareas(List mbcareas) {
this.mbcareas = mbcareas;
}

public CatArea addMbcarea(CatArea mbcarea) {
getMbcareas().add(mbcarea);
mbcarea.setMbcdivisio(this);

return mbcarea;
}

public CatArea removeMbcarea(CatArea mbcarea) {
getMbcareas().remove(mbcarea);
mbcarea.setMbcdivisio(null);

return mbcarea;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((iddivisio == null) ? 0 : iddivisio.hashCode());
result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
CatDivision other = (CatDivision) obj;
if (iddivisio == null) {
if (other.iddivisio != null)
return false;
} else if (!iddivisio.equals(other.iddivisio))
return false;
if (nombre == null) {
if (other.nombre != null)
return false;
} else if (!nombre.equals(other.nombre))
return false;
return true;
}

@Override
public String toString() {
return "CatDivision [iddivisio=" + iddivisio + ", activo=" + activo + ", nombre=" + nombre + ", mbcareas="
+ mbcareas + "]";
}

}


Подробнее здесь: https://stackoverflow.com/questions/456 ... using-spri
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»