有人可以帮助我在hibernate中为以下情况设置适当的注释:
我有三张桌子:
账户,卡和账户卡。
AccountCard正在加入卡与账户之间的OneToMany关系表(账户有很多卡,卡只附加到一个账户)。
我需要添加到帐户列表卡属性和卡模型帐户帐户属性。这很容易。
问题是我在持有Account with Cards时遇到“无法将空值插入AccountCard.id”。 此外,我需要使用序列生成用于连接表的ID,但不知道如何。
非常感谢任何帮助。
以下是卡片中的代码:
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "account_card", joinColumns = @JoinColumn(name = "crd_id"), inverseJoinColumns = @JoinColumn(name = "acc_id"))
private Account account;
我不希望在Account类中有映射,因此不会添加列表卡。
答案 0 :(得分:0)
您是否尝试首先在数据库中生成表(在我的情况下是mysql),然后使用像nebans这样的ide创建实体?然后,mysql中的自动增量id列以:
结尾@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
查看http://netbeans.org/kb/docs/javaee/ecommerce/entity-session.html以获取如何使用netbeans从数据库创建实体的示例
答案 1 :(得分:0)
在@JoinTable
注释中,我看到对account_name
表的引用,而不是AccountCard
。某处有AccountCard
表吗?
连接表通常不需要自己的id键,如果你有hibernate自动生成你的表DDL,它将不包含一个。
如果你确实需要在连接表上使用id,我认为没有办法或者需要让hibernate知道它,但是你应该在SQL DDL中创建列NOT NULL AUTO_INCREMENT
。 / p>