我有一个带有 Hibernate 和网络 JavaDB/DerbyDB 的 Java swing 应用程序。有一个表,其结构是这样的:
测试 ID 问题 ID
T1234 Q1
T1234 Q2
T1234 Q3
T1234 Q4
..
..
T1234 Q10
其中 TestID 和 QuestionID 的组合已被定义为主键。每当我添加/插入带有测试 ID 'T1234' 和 QuestionID 'Q10' 的行时,记录就会立即添加到包含 QuestionID 'Q1' 的记录之后。示例:
测试 ID 问题 ID
T1234 Q1
T1234 Q10
T1234 Q3
T1234 Q4
我不希望发生这种情况,因为这在获取记录时给我带来了麻烦。您能否让我知道我该怎么做才能避免这种情况。
我们将不胜感激。
最佳答案
定义你自己的类型
class QuestionID implements Comparable<QuestionID> {…}
并在您的TableModel
中使用它而不是String
。让它的构造函数提取从数据库返回的 questionID
的数字部分,并让它的 compareTo()
实现仅检查该数字。 Value
类是 JTableTest
是一个示例。
关于JavaDB/Hibernate/Swing 自动排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164359/