[英]ManyToOne relationship with non-persistent entity
我想知道您是否可以與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嗎? 或者,只要他通過代碼設置數據庫,就可以恢復數據庫,使其持久化。
與未從數據庫檢索到的實體建立關系的任何其他解決方案。
您可以嘗試使用@Transient批注標記您的非持久性實體。
@Transient
private Foo foo;
這樣,Hibernate應該忽略它並停止嘗試保留它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.