问题描述
我想知道您是否可以与Hibernate以外的实体建立连接,或者是否有任何方法可以在代码中对其进行仿真。 像这样:
主班:
@Entity
@Table(name = "marter_table")
public class MasterEntity {
@Id
@GeneratedValue
@Column(name="id")
private Integer id;
//@ManyToOne ??
//@JoinColumn(name = "??", nullable = false)???
private Foo foo;
//Getters & setters
}
相关类别:
public class Foo {
private String code;
private String name;
//Getters & setters
}
道:
//DAO
@Component
public class FooDAOImpl implements FooDAO {
private static Map<String, Foo> FOO = null;
private final void initFoo() {
FOO = new HashMap<String, Foo>();
Foo f1 = new Foo("1", "foo1");
Foo f2 = new Foo("2", "foo2");
Foo f3 = new Foo("3", "foo3");
FOO.put("1", f1);
FOO.put("1", f2);
FOO.put("3", f3);
}
public final List<Fii> getAll(){
List<Foo> fooList = new ArrayList<Foo>();
if (FOO == null) {
initFoo();
}
for (Map.Entry<String, Foo> e : FOO.entrySet()) {
fooList.add(e.getValue());
}
return fooList;
};
public final Foo getByCode(String code) {
if (FOO == null) {
initFoo();
}
return FOO.get(code);
};
}
您可以在Foo类中创建ManyToOne吗? 或者,只要他通过代码设置数据库,就可以恢复数据库,使其持久化。
与未从数据库检索到的实体建立关系的任何其他解决方案。
1楼
您可以尝试使用@Transient批注标记您的非持久性实体。
@Transient
private Foo foo;
这样,Hibernate应该忽略它并停止尝试保留它。