我有两个表:人员和帐户(一对多关系)。
@Entity
@Table(name="persons")
public class Person {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
private String username;
private String password;
private String country;
private boolean admin;
@OneToMany(mappedBy="person")
@Cascade({CascadeType.ALL})
private Set<Account> accounts;
public Person(String name, String username, String password, String country, boolean admin) {
this.name = name;
this.username = username;
this.password = password;
this.country = country;
this.admin = admin;
}
public Person(){ }
//getters and setters
}
@Entity
@Table(name="accounts")
public class Account {
@Id
@Column(name="accountId")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int accountId;
private int balance;
private String currency;
@ManyToOne
@JoinColumn(name="id")
private Person person;
public Account(int balance, String currency) {
this.balance = balance;
this.currency = currency;
}
private Account(){ }
//getters and setters
}
CREATE TABLE persons(
id int IDENTITY(1,1) PRIMARY KEY NOT NULL,
name nvarchar(30) NOT NULL,
username nvarchar(30) NOT NULL,
password nvarchar(30) NOT NULL,
country nvarchar(30) NOT NULL,
admin bit NOT NULL
);
CREATE TABLE accounts(
accountId int IDENTITY(10000,1) PRIMARY KEY NOT NULL,
balance int NOT NULL,
currency nvarchar(5) NOT NULL,
userId int NOT NULL foreign key references persons(id)
);
Person person = new Person("Maurice","vvvvv","ccccc", "France", true);
this.personService.addPerson(person);
Account account1 = new Account(1000, "eur");
Account account2 = new Account(700, "gbp");
account1.setPerson(person);
account2.setPerson(person);
this.accountService.addAccount(account1);
this.accountService.addAccount(account2);
这不是我第一次使用一对多关系,但我以前没有遇到过这个错误。
完整的StackTrace:
@joincolumn(Name=“id”)
应为@joincolumn(Name=“userid”)
因为userid
用作Accounts表中的外键
我有两个不同的表,Person表和Employee表。我需要这两者之间的一对一映射。Employee表的emp_id引用Person表的person_id。在使用注释编写映射方面我需要一些帮助
我需要帮助在java类中为这些关系表创建映射Hibernate注释(一对一): 有人能帮我吗?谢谢你。
我想使用联接表在两个表之间建立一对多关系。 这就是为什么我想使用联接表: Hibernate单向一对多关联-为什么连接表更好 最后,我想使用Hibernate注释来执行此操作。 我找到了一些使用xml映射实现这一点的示例,但没有使用注释。 我相信这将是如何创建表需要
问题内容: 我偶然发现了在Oracle DB中锁定行的问题。锁定的目的是防止一个以上的事务从DB读取数据,因为该数据会影响新数据的生成并在事务方面发生更改。 为了进行锁定,我将@Lock注释放在SpringData find方法上,该方法检索参与事务的数据。 实施此代码后,我得到日志消息 此外,它没有作用和原因 使用实体管理器重写锁时可以解决该问题 要么 该问题未在MariaDB(MySQL)上出
问题内容: 我有以下带注释的Hibernate实体类: 我的意图是在Cat和Kitten之间建立双向的一对多/多对一关系,Kitten是“拥有方”。 我想发生的事情是,当我创建一个新的Cat,然后是一个引用该Cat的新 小猫时,我Cat上的这组小猫应该包含新的Kitten 。但是,在以下测试 中不会发生这种情况 : 即使在重新查询Cat之后,集合仍然为空: 我在这里对Hibernate期望过高吗?
我的表的结构Product的列为productId,poductName和productPrice类别的列为categoryId,categoryName和categoryproducts的列为categoryId和productId