有没有人可以帮我在hibernate中为以下情况设置适当的注释:
我有三张表:
帐户、卡和AccountCard。
AccountCard是卡和账号之间OneToMany关系的联结表(账号有多张卡,卡只附在一个账号上)。
我需要添加到帐户列表卡属性和卡模型帐户属性。这是一件容易的事情。
问题是,我得到“无法插入空值到AccountCard.id”,而持久化帐户与卡。此外,我需要使用序列来生成用于连接表的ID,但不知道如何生成。
任何帮助都将不胜感激。
以下是Card中的代码:
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name = "account_card", joinColumns = @JoinColumn(name = "crd_id"), inverseJoinColumns = @JoinColumn(name = "acc_id"))
private Account account;我不想在Account类中有一个映射,所以没有添加列表卡。
发布于 2013-02-26 20:20:14
在@JoinTable注释中,我看到了对account_name表的引用,而不是对AccountCard的引用。在某个地方真的有AccountCard表吗?
连接表通常不需要自己的id键,如果你让hibernate自动生成表DDL,它就不会包含一个。
如果您确实需要连接表上的id,我不认为有办法或需要让hibernate知道这一点,但您应该在SQL中将列设置为NOT NULL AUTO_INCREMENT。
发布于 2013-02-26 19:25:05
您是否尝试首先在数据库(在我的例子中是mysql)中生成表,然后使用ide创建实体(如nebans )?然后,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
https://stackoverflow.com/questions/15087744
复制相似问题