結果用の2つの外部キー(ユーザー結果用と平均結果用)を持つユーザーテーブルがあります。両方に対して 1 つの結果テーブルがあります。
休止状態でそのような状況をマッピングする方法は? 1 対 1 のマッピングを試みましたが、うまくいきません。Java では、結果に簡単にアクセスするために、次のようなものが必要です。
public class ParticipantData {
int id;
DataValues pickedData;
DataValues averageData;
}
ユーザー テーブル:
CREATE TABLE IF NOT EXISTS `participant_data` (
`participant_data_id` int(11) NOT NULL AUTO_INCREMENT,
`picked_data_id` int(11) NOT NULL,
`average_data_id` int(11) NOT NULL,
PRIMARY KEY (`participant_data_id`),
KEY `average_data` (`average_data_id`),
KEY `picked_data` (`picked_data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
average_data と picked_data は結果の data_values_id を指します
結果表:
CREATE TABLE IF NOT EXISTS `data_values` (
`data_values_id` int(11) NOT NULL AUTO_INCREMENT,
`n1` float NOT NULL,
`s1` float NOT NULL,
`x1` float NOT NULL,
`a` float NOT NULL,
`b` float NOT NULL,
PRIMARY KEY (`data_values_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=36407 ;
機能しない休止状態のマッピング:
参加者データ:
<hibernate-mapping>
<class name="com.mep.model.ParticipantData" table="participant_data">
<id name="id" type="int" column="participant_data_id" >
<generator class="increment"/>
</id>
<one-to-one name="pickedData" class="com.mep.model.DataValues" cascade="all" constrained="true"/>
<one-to-one name="averageData" class="com.mep.model.DataValues" cascade="all" constrained="true"/>
</class>
</hibernate-mapping>
データ値:
<hibernate-mapping>
<class name="com.mep.model.DataValues" table="data_values">
<id name="id" type="int" column="data_values_id">
<generator class="increment" />
</id>
<property name="n1" type="float" column="n1" />
<property name="s1" type="float" column="s1" />
<property name="x1" type="float" column="x1" />
<property name="a" type="float" column="a" />
<property name="b" type="float" column="b" />
<one-to-one name="participantData" class="com.mep.model.ParticipantData"
cascade="all"></one-to-one>
</class>
</hibernate-mapping>
私はどんな助けにも感謝します:)