【发布时间】:2015-05-28 08:10:05
【问题描述】:
我使用 Hibernate 来控制我的数据库,我有 2 个表:
CREATE TABLE IF NOT EXISTS `User`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL DEFAULT '',
`account` VARCHAR(255) NOT NULL DEFAULT '',
`password` VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `Project` (
`id` INT NOT NULL AUTO_INCREMENT,
`manager` INT NOT NULL,
`name` VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
FOREIGN KEY (`manager`) REFERENCES `User`(`id`)
)
我已经完成了映射:
用户:
// ... import code
@Entity
@Table
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String name, account, password;
@OneToMany(mappedBy = "manager")
private List<Project> projects;
public User() {
}
// ... Getter & Setter code
}
项目:
// ... import code
@Entity
@Table
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column
private String name;
@ManyToOne
@JoinColumn(name = "manager")
private User manager;
public Project () {
}
// ... Getter & Setter code
}
我想知道是否可以在我选择项目时,项目将包含其经理数据但没有密码。
在其他方面,我希望我得到的每个项目都像这样(格式为 JSON):
{
"id": 0,
"name": "A test project",
"manager": {
"id": 0,
"name": "John Smith"
"accound": "user1",
"password": null
}
}
【问题讨论】: