在MySQL中保存Java对象_如何在MySQL数据库中建模保存自身实例的Java对象?

我有一个webapp,它有一个包含自身集合的对象.我正在努力解决如何在

MySQL数据库中对此进行建模的问题.它是一个包含子任务列表的Task对象.这是这个类的样子:

Task.java

public class Task{

private int taskID;

private String name;

private String details;

private List subTasks

...other properties

public Task(int taskID, String name, String details){

this.taskID = taskID;

this.name = name;

this.details = details;

this.subTasks = new ArrayList<>();

}

Getters and Setters here...

}

通过一些研究并自己思考,我想出了一个可能的解决方案.我有一个UML图的图像,但由于我刚加入而且我的SO代表还不够高,所以无法发布它.所以我尽力用以下字符显示:

--------------------- -------------------

| Task | | SubTaskMap |

--------------------- 1 __∞_|-----------------

| int taskID |----|__∞_|int subTaskID |

| String taskName | |int parentTaskID |

| String taskDetail | -------------------

--------------------

因此,subTaskID和parentTaskID都是表SubTaskMap中的主键以及表Task中的taskID的外键(同样,它们都是Java中的Task对象).据我所知,在此设置中运行查询以查找与parentTaskID关联的所有任务,我将不得不创建Task表的别名.

我在MS Access中对此进行了全部建模,并且为了获得与parentTaskID为5相关联的所有任务的查询,我指定了Task.taskID与SubTaskMap.subTaskID之间的连接以及别名表Task_Copy和SubTaskMap之间的另一个连接,该连接将Task_copy.taskID与SubTaskMap.parentTaskID获得了这样的SQL查询:

SELECT Task.taskName, SubTask.parentTaskID

FROM Task AS Task_Copy INNER JOIN (Task INNER JOIN SubTask ON Task.taskID = SubTask.subTaskID) ON Task_Copy.taskID = SubTask.parentTaskID

WHERE (((SubTask.parentTaskID)=5));

那么这是解决这个问题的好方法还是有更好的方法?

谢谢你的帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值