Return-Path: Delivered-To: apmail-db-jdo-dev-archive@www.apache.org Received: (qmail 73443 invoked from network); 16 Mar 2007 05:25:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Mar 2007 05:25:10 -0000 Received: (qmail 62962 invoked by uid 500); 16 Mar 2007 05:24:06 -0000 Mailing-List: contact jdo-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-dev@db.apache.org Received: (qmail 62951 invoked by uid 99); 16 Mar 2007 05:24:06 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Mar 2007 22:24:06 -0700 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=MISSING_HEADERS,UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: local policy) Received: from [192.18.42.249] (HELO nwk-ea-fw-1.sun.com) (192.18.42.249) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Mar 2007 22:23:44 -0700 Received: from d1-sfbay-09.sun.com ([192.18.39.119]) by nwk-ea-fw-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id l2G5NNtt024394 for ; Thu, 15 Mar 2007 21:23:23 -0800 (PST) Received: from conversion-daemon.d1-sfbay-09.sun.com by d1-sfbay-09.sun.com (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) id <0JEZ00E01DLID300@d1-sfbay-09.sun.com> (original mail from Craig.Russell@Sun.COM) for jdo-dev@db.apache.org; Thu, 15 Mar 2007 22:23:23 -0700 (PDT) Received: from [192.168.0.13] (c-24-6-172-77.hsd1.ca.comcast.net [24.6.172.77]) by d1-sfbay-09.sun.com (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPSA id <0JEZ004NPDMYWO60@d1-sfbay-09.sun.com> for jdo-dev@db.apache.org; Thu, 15 Mar 2007 22:23:23 -0700 (PDT) Date: Thu, 15 Mar 2007 22:23:19 -0700 From: Craig L Russell Subject: Re: Persistent properties for classes In-reply-to: <366024.79735.qm@web51009.mail.re2.yahoo.com> Sender: Craig.Russell@Sun.COM Cc: Apache JDO project , JDO Expert Group Message-id: <782A9C8B-B9BD-4D3B-A968-49A54D2977FC@SUN.com> MIME-version: 1.0 X-Mailer: Apple Mail (2.752.3) Content-type: multipart/signed; protocol="application/pkcs7-signature"; boundary=Apple-Mail-169-294387493; micalg=sha1 References: <366024.79735.qm@web51009.mail.re2.yahoo.com> X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail-169-294387493 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Hi Bin, Thanks for taking time to reply. My question is whether we should permit both a persistent field and a persistent property to have the same name. I think that the answer is no. I'm not sure if this is also your position. In your example, referring to "${user.name}", should you get the value of the field called name, or get the result of getName()? I believe that the specification of EL requires a property, i.e. getName (). And in JDOQL, if you have a persistent property called name, then name == "Mike" gives you the right result. It's really up to the user whether to use persistent properties or persistent fields. Your examples can work with either properties or fields, but the results are ambiguous if you have both persistent field "name" and persistent property "name". Craig On Mar 15, 2007, at 7:55 PM, Bin Sun wrote: > Hi! > > I strongly oppose to using a different field name > for a property. > > For a webapp, we may use a JDO javabean like this: > "${user.name}", and we also frequently need to do > JDOQL like this: "name=='Mike'". Keeping field names > the same as property names can reduce much confusion > for coders. This is a basic rule for my development. > > How do others think? > > > --- Erik Bengtson wrote: > >> Hi, >> >> We are implementing persistent properties, and I >> have some questions. >> >> Question 1: >> ------------------ >> Take this example: >> >> >> >> >> >> >> class Person >> { >> String name; >> String _birth; >> >> public Date getBirth() >> { >> return this._birth; >> } >> >> public void setBirth(Date birth) >> { >> this._birth = birth; >> } >> } >> >> Is it allowed to have mixed persistent fields and >> persistent properties in same >> Class or Super Classes? >> >> In JPA, this is explicitly unspecified. >> >> IMO it should not be allowed to avoid user errors >> (possibly overriding values or >> persisting twice the same information). >> >> Question 2: >> ------------------ >> Take this example: >> >> >> >> >> >> >> class Person >> { >> String _name; >> String _birth; >> >> public String getName() >> { >> return this._name; >> } >> >> public void setString(String name) >> { >> this._name = name; >> } >> public Date getBirth() >> { >> return this._birth; >> } >> >> public void setBirth(Date birth) >> { >> this._birth = birth; >> } >> } >> >> By default, _name and _birth would have persistence >> modifier = persistent. In >> this case we are using persistent properties, does >> the default persistence >> modifier for fields changes to transient? >> >> Question 3: >> ------------------ >> Take this example: >> >> >> >> >> >> >> class Person >> { >> String _name; >> String _birth; >> >> public String getName() >> { >> return this._name; >> } >> >> public void setString(String name) >> { >> this._name = name; >> } >> public Date getBirth() >> { >> throw new UnbornException(); >> } >> >> public void setBirth(Date birth) >> { >> this._birth = birth; >> } >> } >> >> If an exception is raised from the getter/setter, >> what should be done by the >> implementation? >> >> In JPA, there is an automatic rollback. >> >> Regards, >> >> Erik Bengtson >> > > > > > ______________________________________________________________________ > ______________ > Don't pick lemons. > See all the new 2007 cars at Yahoo! Autos. > http://autos.yahoo.com/new_cars.html Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:Craig.Russell@sun.com P.S. A good JDO? O, Gasp! --Apple-Mail-169-294387493 Content-Transfer-Encoding: base64 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGUDCCAwkw ggJyoAMCAQICECpJVMO68ii+Xfsc1O1YYFIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkEx JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA2MTIwOTE5NTEwNVoXDTA3MTIwOTE5NTEw NVowbDEQMA4GA1UEBBMHUnVzc2VsbDEUMBIGA1UEKhMLQ3JhaWcgTGFpcmQxHDAaBgNVBAMTE0Ny YWlnIExhaXJkIFJ1c3NlbGwxJDAiBgkqhkiG9w0BCQEWFUNyYWlnLlJ1c3NlbGxAU3VuLkNPTTCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNAB4Ih+ShsCt89HzqIdwEx8L4o1UHiY6V7 16mrCedfd4Y0/uI7z9Zam8ysgEh+F7aDnQEKmEsVFN35G4nPMfLU6dZYkvADwUjbq82t/dJ3FDDg Q945nHHpqECZff/S/UMho9AFfj6PZvZBAlDCJAayb4RdKIlfuvPW9YcQStQ1IfVJcVuKnC0Q+tdc a4A7zn7IzLOQohO1lTc3hXSBigEIGiGYn6Ny0wmexfA3X1WsXekFx5czd+M4GjDjswn8CNoBmnBr jOTGK1mOsXR6GSRHnly2s9xTdE4qv9qimM+7C2yzMHbKcszV7OQoLsRsZKDh+6u9wYU+TrjcY4ym bA8CAwEAAaMyMDAwIAYDVR0RBBkwF4EVQ3JhaWcuUnVzc2VsbEBTdW4uQ09NMAwGA1UdEwEB/wQC MAAwDQYJKoZIhvcNAQEFBQADgYEAU/EpPDztnb55Fz7iGSVm1mYEVj5m2OQKTYG26POUAomCBRrt /CdBBvqYmcHUTpra0qLELHAQadYFl2v11iQkqwF5PPJs19oU/zA0m5qFnOMTAiCvel7IprIwA2r6 eJR9siaPwDRgVJ/Sj71dD+utwf+nRrNy0/7PMNK5y+ocsYQwggM/MIICqKADAgECAgENMA0GCSqG SIb3DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQH EwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZp Y2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1h aWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMw NzE3MDAwMDAwWhcNMTMwNzE2MjM1OTU5WjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3Rl IENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWls IElzc3VpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSmPFVzVftOucqZWh5owHUE cJ3f6f+jHuy9zfVb8hp2vX8MOmHyv1HOAdTlUAow1wJjWiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/Ef kTYkKhPPK9Xzgnc9A74r/rsYPge/QIACZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMB AAGjgZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3Js LnRoYXd0ZS5jb20vVGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8EBAMCAQYwKQYD VR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4MA0GCSqGSIb3DQEBBQUAA4GB AEiM0VCD6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0whuPg2H6otnzYvwPQcUCCTcDz9reFhYsPZOhl+ hLGZGwDFGguCdJ4lUJRix9sncVcljd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC 3CEZNd4ksdMdRv9dX2VPMYIDEDCCAwwCAQEwdjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt YWlsIElzc3VpbmcgQ0ECECpJVMO68ii+Xfsc1O1YYFIwCQYFKw4DAhoFAKCCAW8wGAYJKoZIhvcN AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcwMzE2MDUyMzE5WjAjBgkqhkiG9w0B CQQxFgQUW/szGDTn7/2H/cU+lgFRL+mPsUwwgYUGCSsGAQQBgjcQBDF4MHYwYjELMAkGA1UEBhMC WkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0 ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhAqSVTDuvIovl37HNTtWGBSMIGHBgsqhkiG 9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQ dHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhAq SVTDuvIovl37HNTtWGBSMA0GCSqGSIb3DQEBAQUABIIBALd5LAGbfkuG9y2NIRBtgOwxjYLFoblH ioGzSSq5n0jxeJ48bpJBo1CvN9M7eCY4JLJaRQjoZNApOFvI1ng+LDSs1MrsuNQqXsA+NFALsXgj tZbhR4yzY1haRhMIpfQ9Exr4asuncoTBW2RP7ROiHmiqOKiO/94TInpLyDYHPSsTeEPqs+0BRJGC ZCU9ptyfWr02MpKC99B5YdKgDiNZ/YCHwXTk+qPBM2cZjcOl6XbwHntTqcgRz2dda6XzSVlRVce2 2A2NKlnIlhb3CaX3XpHFWecQ24IuV2p+QTO6eoDQiVQ902ChfklMKSwIc2/QlqxxiES/hrk+fbuJ GkKhc1gAAAAAAAA= --Apple-Mail-169-294387493--