为什么ORM被认为是好的,但是“select *”被认为是不好的?

ORM通常不涉及做一些select*? 如果我有一个表,MyThing,与列A,B,C,D等,那么通常会有一个对象,MyThing属性A,B,C,D。 如果这个对象被一个看起来像这样的select语句不完全实例化,那只会得到A,B而不是C,D: 从MyThingselectA,B / *不要C和D,因为我们不需要它们* / 但总是这样做也是邪恶的: selectA,B,C,D / *获取所有列,以便我们可以完全实例化MyThing对象* / ORM是否假设数据库访问速度如此之快,现在您不必担心,因此您可以随时获取所有列? 或者,您是否有不同的MyThing对象,每个组合可能碰巧在select语句中? 编辑:在你回答这个问题之前,请阅读Nicholas Piasecki和Bill Karwin的答案。 我猜我的问题很糟糕,因为很多人误解了这个问题,但尼古拉斯100%都明白这一点。 像他一样,我对其他答案感兴趣。 编辑#2:与这个问题有关的链接: 为什么我们需要实体对象? http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx ,尤其是“部分对象问题和加载时间悖论” http://groups.google.com/group/comp.object/browse_thread/thread/853fca22ded31c00/99f41d57f195f48b ? http://www.martinfowler.com/bliki/AnemicDomainModel.html http://database-programmer.blogspot.com/2008/06/why-i-do-not-use-orm.html

Eclipse中运行的是什么版本的Java?

我如何知道在Eclipse中运行的是什么版本的Java? 有没有办法编写代码来找出? “包资源pipe理器”中的“JRE系统库[JavaSE-1.6]”是正确的版本吗?

正则expression式*不*匹配任何字符

我知道这是一个相当奇怪的目标,但是对于我们的系统之一,我们需要不过滤任何input,并让腐败进入系统。 我目前的正则expression式是“ \^.* ” 问题是,它不符合计划的字符…但是对于一个匹配,它的工作。 使它不起作用的string是^ @ jj(基本上任何有^的东西)。 现在不匹配任何字符的最好方法是什么? 我正在考虑删除“ \但只有这样才能将“不”变成“开始”。

INVALID_STATE_ERR:DOM例外11(WebKit)

我最近testing了一个我正在使用Chrome和Safari的Cappuccino应用程序。 我得到的错误: INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable. 缺乏信息令人沮丧。 什么对象和我在哪里试图使用它? Chrome试图回答第二个问题,但是它给出的行号,465,当它给出的文件长度只有94行时,并不意味着什么。 没有更多的信息,我甚至不知道从哪里开始寻找。

为什么使用初始化方法而不是构造函数?

我刚进入一个新的公司,许多代码库使用初始化方法而不是构造函数。 struct MyFancyClass : theUberClass { MyFancyClass(); ~MyFancyClass(); resultType initMyFancyClass(fancyArgument arg1, classyArgument arg2, redundantArgument arg3=TODO); // several fancy methods… }; 他们告诉我,这与时间有关。 有些事情必须在施工之后完成, 在构造函数中失败。 但是大多数构造函数都是空的,我没有看到任何不使用构造函数的理由。 所以我转向你,哦向导的C + +:为什么你会用一个init方法,而不是一个构造函数?

如何合并一些spannable对象?

我将一个可以跨越的对象分成三部分,做不同的操作,然后我需要合并它们。 Spannable str = editText.getText(); Spannable selectionSpannable = new SpannableStringBuilder(str, selectionStart, selectionEnd); Spannable endOfModifiedSpannable = new SpannableStringBuilder(str, selectionEnd, editText.getText().length()); Spannable beginningOfModifiedSpannable = new SpannableStringBuilder(str, 0, selectionStart); 我该怎么做? 我没有find所需的方法或构造函数来做到这一点。

如何在java中将hexstring转换为长整型?

我想在java中将hexstring转换为long。 我曾尝试过一般转换。 String s = "4d0d08ada45f9dde1e99cad9"; long l = Long.valueOf(s).longValue(); System.out.println(l); String ls = Long.toString(l); 但是我收到这个错误消息: java.lang.NumberFormatException: For input string: "4d0d08ada45f9dde1e99cad9" 有什么办法将string转换为长期在Java? 或者我想这是不可能的! 谢谢!

PHP获取数组的最后3个元素

我有一个数组: [13] => Array ( [0] => joe [1] => 0 [14] => Array ( [0] => bob [1] => 0 ) [15] => Array ( [0] => sue [1] => 0 ) [16] => Array ( [0] => john [1] => 0 ) [17] => Array ( [0] => harry [1] => 0 ) […]

Rails哪里()关于模型关联的子句?

假设我有一个帐户模型has_many用户。 帐户有一个布尔“活动”列。 我如何获得属于“有效”帐户的所有用户? @users_of_active_accounts = User.? 谢谢!

将两个button设置为相同的宽度,而不考虑屏幕尺寸

好的,我有两个线性布局的button: <LinearLayout android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:layout_width="fill_parent"> <Button android:id="@+id/aktiviraj_paket" android:text="Aktiviraj" android:layout_height="40sp" android:layout_width="160sp" android:background="@drawable/my_border3" android:onClick="myClickHandle"></Button> <Button android:id="@+id/deaktiviraj_paket" android:text="Deaktiviraj" android:layout_height="40sp" android:layout_width="fill_parent" android:background="@drawable/my_border3" android:onClick="myClickHandle"> </Button> </LinearLayout> 所以事情是,如果我在两个button上使用填充父项,它们是相互之间的一个,所以我做了第一个button160sp宽度,第二个是fill_parent。 如果在4英寸或更小的屏幕上显示,button的大小相同,但如果我在平板电脑(10英寸)上尝试此操作,则第一个button的宽度将保持为160sp,而第二个button的宽度将延伸到屏幕的末端(因为fill_parent)。 我可以做到这一点,所以无论屏幕大小如何,两个button都可以是大小的。