我在使用hibernate在数据库中保存实体时遇到了问题。 我想要的是我想以下列方式获取记录。
Employee()。getProjects()[0] .getRole()--------->应该获得分配给的角色 员工参与项目。
员工将有多个项目,每个项目都将有一个角色。分配员工时 对于项目,该条目应保存在带有employeeid,projectid和roleid的EMPLOYEE_PROJECT表中。 当我保存实体时,我得到例外。我不明白这个问题。 我不确定这是获得Employee-> Project->角色的正确方法。
.iloc
答案 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;