Здравствуйте! Подскажи, пожалуйста, у меня мысли плывут .. Использую Spring Data, Security. При регистрации юзер указывает свои имя и пароль. Я пытаюсь к этому всему добавить стандартную картинку, путь которой лежит в отдельной ячейке(по ид - 1), отдельной таблицы в бд. В таблице юзеров есть поле image_id, которое связанно внешним ключем с картинками.(Дальше кину код). Если делать без участия картинки, то регистрация проходит успешно. Собственно проблема в том, что я до конца не понимаю как должна связь произойти таблицы юзера и картинки. Как правильно? При создании юзера, отдельно создать картинку, заранее ее вписать в бд, и потом сдлать user.set(image), или достаточно просто создать картинку и сделать сет? И такой же точно вопрос, но если пользователь уже существует.
Пожалуйста, помогите, это крик души)
Вот часть кода, где выскакивает ешибка:
Image image = imageDAO.getOne(1L);
System.out.println(image.getPath());
Вот мой ImageDAO
public interface ImageDAO extends JpaRepository<Image, Long> {
Image findByPath(String path);
}
public interface ImageService {
void save(Image image);
Image findByPath(String path);
}
public class ImageSeviceImpl implements ImageService{
@Autowired
private ImageDAO imageDAO;
@Autowired
private UserDao userDao;
@Override
public void save(Image image) {
imageDAO.save(image);
}
@Override
public Image findByPath(String path) {
return imageDAO.findByPath(path);
}
}
Возможно нужно сами классы сущностей дать.
@Entity
@Table(name = "images")
public class Image {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "path")
private String path;
@OneToOne(mappedBy = "image")
private UserEntity user;
@Entity
@Table(name = "users")
public class UserEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "username")
protected String username;
@Column(name = "password")
protected String password;
@Column(name = "email")
protected String email;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "image_id")
protected Image image;
@Column(name = "about")
protected String about;
и сам код ошибки
org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: com.chat.my.model.Image; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: com.chat.my.model.Image
org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:210)
org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:155)
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:417)
org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodIntercceptor.invoke(CrudMethodMetadataPostProcessor.java:122)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
com.sun.proxy.$Proxy44.save(Unknown Source)
com.chat.my.service.UserServiceImpl.save(UserServiceImpl.java:43)
com.chat.my.controller.UserController.registration(UserController.java:65)
Код ошибки:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.LazyInitializationException: could not initialize proxy - no Session
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
I have problem with extracting dataI have next entities
Использую Thymeleaf и при выводе месяца, он почему-то выводится в родительном падеже, и я никак не могу понять почему
Есть некая js консоль на тестируемом сервисе с описанием объектов и куском кода в котором необходимо менять условие в зависимости от требованийВ...