HIbernate保存了权利问题

时间:2016-08-10 11:40:14

标签: hibernate

我在使用hibernate在数据库中保存实体时遇到了问题。 我想要的是我想以下列方式获取记录。

Employee()。​​getProjects()[0] .getRole()--------->应该获得分配给的角色 员工参与项目。

员工将有多个项目,每个项目都将有一个角色。分配员工时 对于项目,该条目应保存在带有employeeid,projectid和roleid的EMPLOYEE_PROJECT表中。 当我保存实体时,我得到例外。我不明白这个问题。 我不确定这是获得Employee-> Project->角色的正确方法。

.iloc

1 个答案:

答案 0 :(得分:1)

更改表格“EMPLOYEE_PROJECT”的名称,因为不能为不同的表格提供两次相同的名称,这是没有意义的。

#include <Windows.h>
#include <detours.h>
#include<string>
#include<fstream>
#include<iostream>
using namespace std;

wofstream out;

BOOL(__stdcall * T14)
(
_Out_ LPRECT lprc,
_In_  int    xLeft,
_In_  int    yTop,
_In_  int    xRight,
_In_  int    yBottom

) = SetRect;


__declspec(dllexport) BOOL  M14
(
_Out_ LPRECT lprc,
_In_  int    L,
_In_  int    T,
_In_  int    R,
_In_  int    B
){

    out << "SetRect: " << L << " " << T << " " << R << " " << B << endl;
    return T14(lprc, L, T, R, B);
}

BOOL WINAPI DllMain(HINSTANCE hinst, DWORD dwReason, LPVOID reserved)
{
    if (dwReason == DLL_PROCESS_ATTACH)
    {
        out.open("out.txt");
        out << "Attached" << endl;
        DetourRestoreAfterWith();
        DetourTransactionBegin();
        DetourUpdateThread(GetCurrentThread());
        DetourAttach(&(PVOID&)T14, M14);
        DetourTransactionCommit();
    }
    else if (dwReason == DLL_PROCESS_DETACH)
    {
        out << "detached" << endl;
        out.close();
        DetourTransactionBegin();
        DetourUpdateThread(GetCurrentThread());
        DetourDetach(&(PVOID&)T14, M14);
        DetourTransactionCommit();
    }

    return TRUE;
}

并且:

 @OneToOne(cascade = CascadeType.ALL)
                    @JoinTable(name = "EMPLOYEE_ROLE", joinColumns = { @JoinColumn(name = "PROJECT_PKEY")}, inverseJoinColumns = { @JoinColumn(name = "ROLE_PKEY") })
                    private Role role;