我有一门课程涉及模块多对多关系,一门课程可以包含任意数量的模块,而模块可以位于任意数量的课程中:
表格
id 名称
course_id module_id
id 名称
如何实现课程特定的模块sort_odering,以便一个课程中的一个模块首先出现,而另一课程中的最后出现?我在Hibernate中使用Spring JPA,
答案 0 :(得分:0)
您可以使用休眠模式来刷新数据jpa。
您可以遵循以下文档:spring data jpa。课程和模块实体的关系将是多对多关系。
您可以在此处为存储库创建一个接口,并从此接口中按courseId查找模块
您的代码将是这样
const GET_PROFILE = gql`
query GetProfileQuery($profileId: ID!) {
getProfileInfo(profileId: $profileId) {
name
}
}
`;
const ADD_ENDORSEMENT = gql`
mutation AddEndorsement($profileId: ID!, $body: String!) {
addEndorsement(profileId: $profileId, body: $body) {
endorsementId
}
}
`;
const Profile = props => {
const profileId = props.match.params.profileId;
return (
<Query query={GET_PROFILE} variables={{ profileId: profileId }}>
{({ loading, error, data }) => {
if (loading) return <p>Loading...</p>;
if (error) return <p>Error :(</p>;
return (
<Fragment>
<h1>Welcome {data.getProfileInfo.name}</h1>
<Mutation mutation={ADD_ENDORSEMENT}>
{(addEndorsement, { loading, error }) => (
<div>
<button
onClick={e => {
addEndorsement({
variables: {
profileId: profileId,
body: "This is a test."
}
});
}}
>
Save
</button>
{loading && <p>Loading...</p>}
{error && <p>Error :(</p>}
</div>
)}
</Mutation>
</Fragment>
);
}}
</Query>
);
};
您必须在课程实体内部声明列出模块。这是一个像您的问题一样的好例子。
在最后一部分,您要问的是:您可以为映射表创建一个优先级列,并实现所需的业务逻辑。