簡體   English   中英

與非持久實體的ManyToOne關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM