我使用Spring 3.2.3和Hibernate 4.2.3和JDK 7.
我有一个简单的实体:
@Entity
public class Language {
@Id
@GeneratedValue
private long id;
@Column(nullable = false, length = 3, unique = true)
private String code;
}
Run Code Online (Sandbox Code Playgroud)
我使用@Service带@Transactional注释方法的带注释的类保存了这个实体的实例,该方法使用DAO来保存实体
sessionFactory.getCurrentSession().save(object);
Run Code Online (Sandbox Code Playgroud)
之后我使用保存的 Language实体进行创建EntityX,在ManyToOne关系中使用它...
lang=new Language();
// ...
languageService.saveLanguage(lang);
e=new EntityX();
// ...
e.setLanguage(lang);
otherService.saveEntity(e);
Run Code Online (Sandbox Code Playgroud)
并被EntityX定义为......
@Entity
public class EntityX {
@ManyToOne
@JoinColumn(nullable = false)
private Language language;
// ...
}
Run Code Online (Sandbox Code Playgroud)
我总是得到例外
Exception in thread "main" org.hibernate.TransientObjectException: object references an …Run Code Online (Sandbox Code Playgroud)