JPA @OneToMany – >父 – 子参考(外键)

我有一个关于从子实体引用ParentEntities的问题如果我有这样的事情: Parent.java: @Entity(name ="Parent") public class Parent { @Id @Generate….. @Column private int id; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parent") private Set<Child> children; simple … getter and setter … } 和Child.java: @Entity(name ="Child") public class Child{ @Id @Generate…. @Column private int id; @ManyToOne private Parent parent; … simple getter an setter } […]

为什么std :: ostream和char之间的operator <<函数是非成员函数?

当我运行下面的程序 #include <iostream> int main() { char c = 'a'; std::cout << c << std::endl; std::cout.operator<<(c) << std::endl; return 0; } 我得到了输出 a 97 进一步挖掘在http://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt ,我注意到, std::ostream::operator<<()没有一个具有char作为参数types的重载。 函数调用std::cout.operator<<(a)被parsing为std::ostream::operator<<(int) ,它解释了输出。 我假设std::ostream和char之间的operator<<函数在其他地方被声明为: std::ostream& operator<<(std::ostream& out, char c); 否则, std::cout << a将parsing为std::ostream::operator<<(int) 。 我的问题是为什么声明/定义为非成员函数? 有没有已知的问题阻止它成为一个成员函数?

在域驱动devise(DDD)中对查找表build模的实用方法是什么?

我刚刚学习DDD(埃里克埃文斯书是在我面前打开),我遇到了一个问题,我无法find答案。 当你只是想得到一个简单的查询logging列表,你在DDD做什么? 防爆。 雇员ID:123 雇员姓名:John Doe 状态:阿拉斯加(下拉式) 县:瓦西拉(下拉式 – 将根据状态过滤)。 例如,假设您有一个Employee域对象,一个IEmployeeRepository接口和一个EmployeeRepository类。 这将被UI用来显示雇员和个人详细信息的列表。 在用户界面中,您希望使用员工居住的州和县的下拉菜单。 可用县将根据select哪个州进行筛选。 不幸的是,数据库表和UI看起来很不一样。 在tblEmployees,它包含州代码= AK和县代码= 02130,而不是州和县的名称。 旧的方式(在我开始这个DDD任务之前)将是非常简单的,只需创build2个查询并使用DataReader来填充下拉菜单。 在下拉列表中显示的值是自动在表单post中使用的值。 不过,DDD,我不知道你应该如何做到这一点。 我首先创build了State和County对象以及存储库的存储库和接口。 但是,编写4个类+ 2个接口,并在hbm.xml文件+员工业务对象的pipe道似乎只是2个下拉的查询矫枉过正。 必须有更好的方法,不是吗? 我不会很快改变州或县表中的logging,即使我这样做了,也不会通过这个应用程序。 所以如果我不需要的话,我真的不想为州和县创build业务对象。 我所看到的最简单的解决scheme就是创build一个帮助类,它带有返回字典的方法,比如GetStatesAll(),GetState()和GetCounties()和GetCounty(),但是从DDD的angular度来看,这只是一种错误。 请帮忙。 如何在没有过度工程的情况下使用DDD? 最终的解决scheme我认为我最终通过经验find了答案,即将GetStates()方法放入其自己的数据访问类中,但不是存储库类。 由于我只是做只读访问,所以我把它扔到一个struct DTO中。 由于数据库很小,我把它们全部扔进一个类,就像下面描述的Todd一样。 我的结论是: 查找表是永远不值对象,因为查找表总是有一个身份。 如果他们没有身份certificate,你会有重复,这是没有道理的。 只读查找表可以有一个存储库,但可能不需要一个。 存储库的目标是通过仅通过聚合强制访问来降低复杂性。 通过汇总提供了一种确保业务规则可以执行的方法,例如,如果没有汽车,则不添加轮胎。 如果允许在查找表上进行CRUD维护,则查找表有自己的存储库是有意义的。 我最终将代码存储为结构的事实不会使它们成为“值types”。 福勒说,在POEAA中,一个结构是一个值types。 这是真的,结构是不可改变的,这就是为什么福勒说,他们是“价值types”,但我用不同的方式。 我正在使用结构作为一种轻量级的方式来传递DTO,这是我在创build之后从未打算改变的。 事实上,我所使用的结构确实具有身份,但由于它们是只读的,所以它们起到了结构的作用。 我一直在使用的一种模式,我没有在其他地方看到很多,主要关键字段是不可变的。 它们由构造函数设置,但是它们是只读的(不是私有访问器),一旦创build对象就不能更改。

有穆斯林祈祷时间计算Java库吗?

谁能告诉我在哪里可以find一个基于城市的穆斯林祈祷时间计算的Java库? 也许是一个Web服务? 我更喜欢Java库。

Android应用的插件架构?

这个问题已经转移到https://softwarerecs.stackexchange.com/questions/27841/plugins-architecture-for-an-android-app 我想实现一个开放源码应用程序的插件系统,因为它已经变得非常庞大,只有less数用户需要的许多function。 发布不同的应用程序并不是一个好的解决scheme,因为用户A需要feature7和feature24,而用户B需要f​​eature39和feature24。 我在哪里可以find一个插件架构的好例子? 这是我想要一个插件能够做到的: 重新定义特定屏幕的布局( 加载压缩的XML ?) 重新定义一个类的方法( load dex class ?, AOP ?) 例如,其中一个插件必须在特定的屏幕上添加一个button,然后单击该button将增加应用程序数据库中的值。 据我所知,这对内容提供商和意图来说是不可行的。 我想避免使核心应用程序的代码复杂到处都是大量的钩子。 插件的forms可以是SD卡上的文件,应用程序或其他任何东西。

将所有警告视为错误

这应该是显而易见的,但我不能使其工作… 我想要做的事情很简单: 如果出现警告,我希望我的编译失败并显示错误 。 是的,着名的TreatWarningsAsErrors … 我configuration它在我的C#项目属性 这导致在我的csproj例外TreatWarningsAsErrors部分: <TreatWarningsAsErrors>true</TreatWarningsAsErrors> 到目前为止,如果我在代码中添加一个无用的privatevariables,会导致编译错误: private int unused; 错误3警告错误:字段'XXXX.unused'从不使用 但是,整个问题是,我不能使它适用于程序集引用问题 。 如果我有一个未知程序集的引用,编译器(devenv或msbuild)会引发警告,但是我想要一个错误。 最终,我试图configuration一个门控登记TFS生成configuration,所以TFS将拒绝提交,以防万一有一个“ 被引用的组件'XXXX'找不到 ”警告。 比修改构build过程模板更简单的事情会很好。

Visual Studio代码:自动刷新文件更改

使用Visual Studio代码我已经注意到,如果您正在使用的文件发生更改,只要该文件聚焦在代码面板中,它将从磁盘重新加载(如果您没有通过VSCode对文件进行更改) 。 但是,如果您在该文件中没有提醒您警告您有关文件更改。 我一直在审查的设置,我找不到像Visual Studio的选项: 检测文件在环境外更换的情况 所以我的问题是:有没有隐藏的设置或一些黑客来发出警告。 更新 在Visual Studio Code的0.3.0版本中解决。 如果没有通过编辑器进行更改,该文件将从磁盘更新。 (在stream程执行过程中读取日志文件非常有用) 如果在尝试使用VSCode保存文件时双方(从磁盘和编辑器)都有更改,编辑器会提醒您有关这种情况,并通过文件比较来决定要做什么。

如何在Python中获得“语句结束”的行号

我正在尝试在Python中操作另一个脚本的脚本,要修改的脚本具有如下结构: class SomethingRecord(Record): description = 'This records something' author = 'john smith' 我使用ast来定位description行号,并且使用一些代码来根据行号更改原始文件和新描述string。 到现在为止还挺好。 现在唯一的问题是偶尔的description是一个多行string,例如 description = ('line 1' 'line 2' 'line 3') 要么 description = 'line 1' \ 'line 2' \ 'line 3' 而且我只有第一行的行号,而不是下面的行。 所以我的单线替代品就可以做到了 description = 'new value' 'line 2' \ 'line 3' 代码被破坏 我认为,如果我知道description任务的开始和结束/行数的行号,我可以修复我的代码来处理这种情况。 如何使用Python标准库获取这些信息?

CouchApps和用户authentication

我把这个问题的一个变种发布到了CouchDB的用户列表,还没有收到答复。 我很想知道是否有人build立了所谓的“CouchApp”。 一个直接在CouchDB中托pipe的纯HTML / JavaScript应用程序。 如果是这样,你是如何处理用户身份validation? 我希望能够创build一个典型的login表单(用户名,密码),然后使用这些凭据对视图或其他机制,然后将用户传递到应用程序(同时将其(encryption)用户ID存储在cookie,据推测)。 我习惯于通过像couchdb-python和一个普通的Web服务器这样的简单代理,但想知道在这些types的CouchApps中对用户进行身份validation的最佳实践。 编辑:一年后,这是现在内置到CouchDB。 这个video是一个很好的示范。 (谢谢Daniel!)

如果我从Sun JDK切换到OpenJDK,有什么需要准备的呢?

如果我从Sun JDK切换到OpenJDK,那么我需要为自己准备什么惊喜? 经常出现什么问题,这有多困难? 当然,每个应用程序都可能有其个别的问题,但是我正在寻找一些问题类 ,这是很多人在转换JDK时已经遇到过的。