我想知道您是否可以建立与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吗?或者,如果他恢复数据库,只需通过代码设置就可以保持持久性。
与未从数据库检索的实体建立关系的任何其他解决方案。
答案 0 :(得分:0)
您可以尝试使用@Transient注释标记非持久性实体。
@Transient
private Foo foo;
这样Hibernate应该忽略它并停止尝试坚持它。