Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa Hibernate 3.5注释_Jpa_One To Many_Hibernate3 - Fatal编程技术网

Jpa Hibernate 3.5注释

Jpa Hibernate 3.5注释,jpa,one-to-many,hibernate3,Jpa,One To Many,Hibernate3,将以下注释应用于字段时,它会起作用: @OneToMany(targetEntity=TestMany.class, cascade=CascadeType.ALL, fetch=FetchType.EAGER) @JoinColumn(name="TESTID") private Set<TestMany> testManys = new HashSet<TestMany>(); 关系的许多方面: @SuppressW

将以下注释应用于字段时,它会起作用:

@OneToMany(targetEntity=TestMany.class,
            cascade=CascadeType.ALL, fetch=FetchType.EAGER)
            @JoinColumn(name="TESTID")

private Set<TestMany> testManys = new HashSet<TestMany>();
关系的许多方面:

@SuppressWarnings("serial")
@Entity
@Table(name="TESTMANY")
public class TestMany  extends BaseEntityImpl{

@ManyToOne
@JoinColumn(name="TESTID", insertable=false, updatable=false)
private Test test;
我不知道为什么它对酒店有效,但对getter无效,这让我发疯。表格很好,注释对我来说也很好。我是否遗漏了一些非常明显的东西?可能是版本问题吗

有一个基本的基类,但我不认为这与它有任何关系:

@MappedSuperclass
public abstract class BaseEntityImpl implements BaseEntity, Serializable {

    private static final long serialVersionUID = 7887314289537012320L;

    @Id @GeneratedValue(strategy = AUTO)
    @Column(name = "ID")
    private Long id;

    public Long getId() {
        return id;
    }

    @SuppressWarnings("unused")
    private void setId(Long id) {
        this.id = id;
    }
}
我使用3.5.3-Final和3.2.0.Final版本作为hibernate coomons注释

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.5.3-Final version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.3-Final <version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>3.2.0.Final</version>
    </dependency>

org.hibernate
冬眠核心
3.5.3-最终版本>
org.hibernate
休眠注释
3.5.3-最终版本
org.hibernate
hibernate commons注释
3.2.0.1最终版本

有没有人有过类似的想法或经历?我花了2.5个小时试图修复这个问题,我预测还有12个问题。

我现在无法测试解决方案(不幸的是,我被困在一台内存不足万亿GB的计算机上,因此这里没有启动Hibernate),但正如图所示,您的设备需要一个类型,而不是:

@OneToMany(targetEntity=TestMany.class, cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="TESTID")
private Set testManys = new HashSet();
您使用:

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="TESTID")
private Set<TestMany> testManys = new HashSet();
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name=“TESTID”)
私有集testManys=newhashset();

它应该会起作用。如果您不喜欢Hibernate文档,您可能会喜欢阅读。

您好,谢谢,很抱歉,当我粘贴代码时,括号消失了。我实际上是这样做的:私有集testManys=newhashset()@OneToMany(targetEntity=TestMany.class,cascade=CascadeType.ALL,fetch=FetchType.EAGER)@JoinColumn(name=“TESTID”)公共集getTestManys(){return testManys;}私有集testManys=new HashSet()@OneToMany(targetEntity=TestMany.class,cascade=CascadeType.ALL,fetch=FetchType.EAGER)@JoinColumn(name=“TESTID”)public Set getTestManys(){return testManys;}erm忽略格式,注释确实位于getter之上,但位于字段之下。这件事让我很困惑。省略targetEntity部分。
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="TESTID")
private Set<TestMany> testManys = new HashSet();