我知道之前已经问过这个问题,但是根据我到目前为止找到的信息,我无法实现解决方案.所以也许有人可以向我解释.
我有一张桌子"状态".它有两列:id和name.id是PK.
我想使用枚举,而不是使用POJO状态.我创建了如下枚举:
public enum Status {
NEW(1), READY(2), CLOSED(3);
private int id;
public void setId(int id) {
this.id = id;
}
public int getId() {
return this.id;
}
Status(int id) {
this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的映射器
<select id="getStatusByName" resultType="Status" parameterType="String">
SELECT ls.id, ls.name
FROM status AS ls
WHERE ls.name = #{name}
</select>
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,当我尝试检索枚举时,某些东西会中断,但不会抛出任何异常.
我有两个表,如下所示:
CREATE TABLE customer
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(25),
PRIMARY KEY(id)
);
CREATE TABLE `client`
(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(200),
`customer_id` INT NOT NULL,
PRIMARY KEY(`id`),
INDEX(`customer_id`),
FOREIGN KEY (`customer_id`) REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT
);
Run Code Online (Sandbox Code Playgroud)
然后我运行以下命令:
INSERT INTO customer (name) VALUES ('Customer1');
Run Code Online (Sandbox Code Playgroud)
现在表customer包含名称:Customer1,id:1
然后我运行了这个:
INSERT INTO client (name, customer_id) VALUES ('Client of Customer1',34);
Run Code Online (Sandbox Code Playgroud)
它本来应该失败,但是成功插入了。这是为什么?
这是在Linux Mint上的MySQL 5.1上。
我完成了基本 Passbook 开发的教程: http://www.raywenderlich.com/20734/beginning-passbook-part-1
我将使用 Windows 机器进行开发,并且我看到使用了两个 Apple 专用工具:
我一定遗漏了一些明显的东西,但仍然......
当我尝试运行以下命令时,我收到 MySQL ERROR 1064 (42000):
CREATE TABLE `mgr_user`
(
`id` INT NOT NULL AUTO_INCREMENT,
`customer_id` INT NOT NULL,
`username` VARCHAR(25),
`password` VARCHAR(100),
INDEX(`customer_id`),
FOREIGN KEY `customer_id` REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT
);
Run Code Online (Sandbox Code Playgroud)