我已经在Stackoverflow上看到了这种问题,但没有任何东西可以帮助我解决我的问题.
我是Hibernate的新手,有一个用Java和MySQL制作的项目,因此使用hibernate.我设法访问我的数据,修改它们,删除它们,但我阻止了一个方法因为我有一个例外到达..并且看到我理解仍然不是我管理的所有线程都没有删除这个bug:
这是我的错误:
org.hibernate.LazyInitializationException严重:懒得初始化角色集合:DAO.User.files,没有关闭会话或会话org.hibernate.LazyInitializationException:懒得初始化角色集合:DAO.User.files,no会话或会话在org.hibernate.collection.AbstractPersistentCollection.initialize上的org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)中关闭. AbstractPersistentCollection.java:343)位于javaapplication5.JavaApplication5.main(JavaApplication5.java:37)的DAO.UserDAO.removeGroupAddUserFiles(UserDAO.java:252)的org.hibernate.collection.PersistentSet.add(PersistentSet.java:189)
这是我的Java类:
public static void main(String[] args) {
GroupDAO grDAO = new GroupDAO();
List[] lists = grDAO.removeGroup(grDAO.getGroupById(1));
FileDAO fiDAO = new FileDAO();
fiDAO.removeGroupAddFiles(lists);
UserDAO usDAO = new UserDAO();
usDAO.removeGroupAddUserFiles(lists);
}
Run Code Online (Sandbox Code Playgroud)
GroupDAO.java:
public List[] removeGroup(Group group) {
Set<File> setFiles = group.getFiles();
Set<User> setUsers = group.getUsers_1();
List[] lists = new List[2];
Iterator<File> itFiles = setFiles.iterator();
Iterator<User> itUsers = setUsers.iterator();
List<File> listFiles = new ArrayList<File>();
List<User> listUsers = new ArrayList<User>();
while (itFiles.hasNext()) {
listFiles.add(itFiles.next());
}
while (itUsers.hasNext()) {
listUsers.add(itUsers.next()); …Run Code Online (Sandbox Code Playgroud) 我正在尝试用Java创建一个Mastermind.代码并不是很难,但我希望有一个非常好的界面.我有一个JPanel,它占用了我所有的JFrame,我使用surchargind repaint()方法绘制了这个JPanel :
public void paint(Graphics g) //méthode permettant de dessiner les éléments sur la carte
{
super.paintComponents(g);
Graphics gr;
gr = MasterMindPane.getGraphics();
img = MasterMindPane.getToolkit().getImage("images/plateau4-8.jpg");
gr.drawImage(img, 0, 0, 600, 720, this);
gr = bouleRougePane.getGraphics();
img = bouleRougePane.getToolkit().getImage("images/bouleRouge.png");
//gr.drawImage(img, 535, 303, 45, 45, this);
gr.drawImage(img, 0, 0, 45, 45, this);
gr = bouleOrangePane.getGraphics();
img = bouleOrangePane.getToolkit().getImage("images/bouleOrange.png");
//gr.drawImage(img, 535, 303, 45, 45, this);
gr.drawImage(img, 0, 0, 45, 45, this);
}
Run Code Online (Sandbox Code Playgroud)
当我点击一个有Panel的图像时,我画出一个黄色圆圈:
private void bouleRougePaneMouseClicked(java.awt.event.MouseEvent evt) {
Graphics2D g2d = (Graphics2D) …Run Code Online (Sandbox Code Playgroud) 我正在开发用Django编写的应用程序,但在使用select_related和prefetch_related进行正确请求时遇到一些问题
我有三种型号:
class Intervention(BaseModel):
date = DateField()
housing = ForeignKey('contract.Housing', related_name='interventions')
class Housing(BaseModel):
address = CharField(max_length=CHAR_FIELD_LENGTH)
class Tenant(BaseModel):
name = CharField(max_length=CHAR_FIELD_LENGTH)
phone = CharField(max_length=CHAR_FIELD_LENGTH, blank=True, null=True)
housing = ForeignKey(Housing, related_name='tenants')
Run Code Online (Sandbox Code Playgroud)
我要求干预模型,如果要访问房屋信息,只需使用select_related:
Interventions.object.select_related("housing").filter(...)
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何使用prefetch_related访问租户:
Interventions.object.select_related("housing").prefetch_related("housing__tenants")
Run Code Online (Sandbox Code Playgroud)
似乎不起作用,因为每次我尝试访问租户列表时都会进行查询。有没有一种方法可以访问租户列表,最好是对I进行过滤(例如找到第一个没有名称的租户)。
感谢您的回答。
阿尔盖洛斯
* 编辑:这是一些代码:*
我要求像我说的那样:
interventionPreventivesVisits = InterventionPreventiveVisit.objects.select_related("housing").prefetch_related("housing__tenants").filter(date__range=(self.weekDays[0], self.weekDays[len(self.weekDays)-1]))
Run Code Online (Sandbox Code Playgroud)
self.weekDays是一个天数表,用于在日历中显示干预。
然后,我要显示没有名称的承租人:
在我的模板中,我遍历干预:
{%for inter in interventions %}
{%if day == inter.date %}
{{ inter | get_schedule_html_formated | safe}}
{%endif%}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我有一个templateTag来显示HTML:
def get_schedule_html_formated(intervention):
housingTenant = None
for tenant in intervention.housing.tenants.all(): # Here it …Run Code Online (Sandbox Code Playgroud)